Revision 47232
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/DefaultExpressionPickerController.java | ||
---|---|---|
24 | 24 |
import org.gvsig.tools.dispose.Disposable; |
25 | 25 |
import org.gvsig.tools.dispose.DisposeUtils; |
26 | 26 |
import org.gvsig.tools.i18n.I18nManager; |
27 |
import org.gvsig.tools.swing.api.InitComponentsListener; |
|
27 | 28 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
28 | 29 |
import org.gvsig.tools.swing.api.ToolsSwingManager; |
29 | 30 |
import org.gvsig.tools.swing.api.ToolsSwingUtils; |
... | ... | |
58 | 59 |
} |
59 | 60 |
} |
60 | 61 |
|
61 |
private final JButton button;
|
|
62 |
private final JTextComponent text;
|
|
62 |
private JButton button; |
|
63 |
private JTextComponent text; |
|
63 | 64 |
private Expression value; |
64 | 65 |
private ExpressionBuilderConfig config; |
65 |
private final DefaultExpressionEvaluatorSwingManager manager;
|
|
66 |
private DefaultExpressionEvaluatorSwingManager manager; |
|
66 | 67 |
private ActionListener buttonAction; |
67 |
private final JMenuItem menuItem;
|
|
68 |
private final AbstractAutomaticExpressionChecker automaticExpressionChecker;
|
|
68 |
private JMenuItem menuItem; |
|
69 |
private AbstractAutomaticExpressionChecker automaticExpressionChecker; |
|
69 | 70 |
private boolean returnNullWhenEmptyExpression; |
70 |
private final HistoryController<Expression> historyController;
|
|
71 |
private final BookmarksController<Expression> bookmarksController;
|
|
72 |
private final JButton buttonBookmarks;
|
|
73 |
private final JButton buttonHistory;
|
|
71 |
private HistoryController<Expression> historyController; |
|
72 |
private BookmarksController<Expression> bookmarksController; |
|
73 |
private JButton buttonBookmarks; |
|
74 |
private JButton buttonHistory; |
|
74 | 75 |
private ActionListener historyAndBookmarkListener; |
75 | 76 |
private JComboBox combo; |
76 | 77 |
|
... | ... | |
96 | 97 |
JButton btnHistory, |
97 | 98 |
JButton btnBookmarks |
98 | 99 |
) { |
100 |
this.manager = manager; |
|
101 |
this.text = text; |
|
102 |
this.button = button; |
|
103 |
this.buttonHistory = btnHistory; |
|
104 |
this.buttonBookmarks = btnBookmarks; |
|
105 |
|
|
106 |
createComponents(); |
|
107 |
} |
|
108 |
|
|
109 |
private void createComponents() { |
|
110 |
ToolsSwingUtils.addInitComponentsListener(this.text, new InitComponentsListener() { |
|
111 |
@Override |
|
112 |
public void doDisposeComponents() { |
|
113 |
disposeComponents(); |
|
114 |
} |
|
115 |
|
|
116 |
@Override |
|
117 |
public void doInitComponents() { |
|
118 |
initComponents(); |
|
119 |
} |
|
120 |
}); |
|
121 |
|
|
99 | 122 |
ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager(); |
100 | 123 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
101 | 124 |
|
102 |
this.manager = manager; |
|
103 | 125 |
this.config = new DefaultExpressionBuilderConfig(manager); |
104 |
this.text = text; |
|
105 |
|
|
106 |
ToolsSwingUtils.addWindowClosedListener(text, (ActionEvent e) -> { |
|
107 |
dispose(); |
|
108 |
}); |
|
109 |
|
|
110 |
this.button = button; |
|
111 |
if( "...".equals(this.button.getText()) ) { |
|
112 |
this.button.setText(""); |
|
113 |
} |
|
126 |
this.returnNullWhenEmptyExpression = true; |
|
114 | 127 |
this.value = null; |
115 |
this.returnNullWhenEmptyExpression = true; |
|
116 |
this.button.setIcon(this.getIcon("picker-expression")); |
|
117 | 128 |
this.buttonAction = (ActionEvent e) -> { |
118 | 129 |
doSelectExpression(); |
119 | 130 |
}; |
120 |
this.button.addActionListener(this.buttonAction); |
|
121 |
|
|
122 |
swingManager.addClearButton(this.text); |
|
123 |
swingManager.setDefaultPopupMenu(this.text); |
|
124 |
JPopupMenu popupMenu = this.text.getComponentPopupMenu(); |
|
125 | 131 |
this.menuItem = new JMenuItem(i18n.getTranslation("_Show_expression_builder")); |
126 |
this.menuItem.addActionListener(buttonAction); |
|
127 |
popupMenu.add(this.menuItem); |
|
128 |
|
|
132 |
|
|
129 | 133 |
this.historyAndBookmarkListener = (ActionEvent e) -> { |
130 | 134 |
ActionEventWithCurrentValue<Expression> ee = (ActionEventWithCurrentValue<Expression>)e; |
131 | 135 |
switch(ee.getID()) { |
... | ... | |
138 | 142 |
break; |
139 | 143 |
} |
140 | 144 |
}; |
141 |
this.buttonHistory = btnHistory; |
|
142 | 145 |
this.historyController = swingManager.createHistoryController( |
143 | 146 |
ExpressionEvaluatorLocator.getManager().getHistory(), |
144 |
btnHistory
|
|
147 |
this.buttonHistory
|
|
145 | 148 |
); |
146 |
this.historyController.addActionListener(historyAndBookmarkListener); |
|
147 |
popupMenu.add(this.historyController.createMenu()); |
|
148 |
|
|
149 |
this.buttonBookmarks = btnBookmarks; |
|
149 |
|
|
150 | 150 |
this.bookmarksController = swingManager.createBookmarksController( |
151 | 151 |
ExpressionEvaluatorLocator.getManager().getBookmarks(), |
152 |
btnBookmarks
|
|
152 |
this.buttonBookmarks
|
|
153 | 153 |
); |
154 |
this.bookmarksController.addActionListener(historyAndBookmarkListener); |
|
155 |
popupMenu.add(this.bookmarksController.createMenu()); |
|
156 | 154 |
|
157 | 155 |
this.automaticExpressionChecker = new AbstractAutomaticExpressionChecker(config, text) { |
158 | 156 |
@Override |
... | ... | |
173 | 171 |
fireChangeEvent(); |
174 | 172 |
} |
175 | 173 |
}; |
174 |
|
|
176 | 175 |
} |
177 | 176 |
|
177 |
private void disposeComponents() { |
|
178 |
dispose(); |
|
179 |
} |
|
180 |
|
|
181 |
private void initComponents() { |
|
182 |
ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager(); |
|
183 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
|
184 |
|
|
185 |
|
|
186 |
|
|
187 |
if( "...".equals(this.button.getText()) ) { |
|
188 |
this.button.setText(""); |
|
189 |
} |
|
190 |
this.button.setIcon(this.getIcon("picker-expression")); |
|
191 |
this.button.addActionListener(this.buttonAction); |
|
192 |
|
|
193 |
swingManager.addClearButton(this.text); |
|
194 |
swingManager.setDefaultPopupMenu(this.text); |
|
195 |
JPopupMenu popupMenu = this.text.getComponentPopupMenu(); |
|
196 |
this.menuItem.addActionListener(buttonAction); |
|
197 |
popupMenu.add(this.menuItem); |
|
198 |
|
|
199 |
this.historyController.addActionListener(historyAndBookmarkListener); |
|
200 |
popupMenu.add(this.historyController.createMenu()); |
|
201 |
|
|
202 |
this.bookmarksController.addActionListener(historyAndBookmarkListener); |
|
203 |
popupMenu.add(this.bookmarksController.createMenu()); |
|
204 |
|
|
205 |
} |
|
206 |
|
|
178 | 207 |
@Override |
179 | 208 |
public void dispose() { |
180 | 209 |
if(this.buttonAction != null){ |
Also available in: Unified diff