Revision 44408 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/DefaultExpressionEvaluatorSwingManager.java
DefaultExpressionEvaluatorSwingManager.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.swing.impl; |
2 | 2 |
|
3 |
import java.awt.event.ActionEvent; |
|
4 |
import java.awt.event.ActionListener; |
|
3 | 5 |
import java.util.ArrayList; |
4 | 6 |
import java.util.Collection; |
5 | 7 |
import java.util.Collections; |
... | ... | |
7 | 9 |
import java.util.HashMap; |
8 | 10 |
import java.util.List; |
9 | 11 |
import java.util.Map; |
12 |
import javax.swing.AbstractAction; |
|
13 |
import javax.swing.Action; |
|
10 | 14 |
import javax.swing.JButton; |
11 | 15 |
import javax.swing.text.JTextComponent; |
12 | 16 |
import org.apache.commons.lang3.StringUtils; |
17 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
|
13 | 18 |
import org.gvsig.expressionevaluator.Function; |
14 | 19 |
import org.gvsig.expressionevaluator.SymbolTable; |
15 | 20 |
import org.gvsig.expressionevaluator.swing.CalculatorController; |
... | ... | |
20 | 25 |
import org.gvsig.expressionevaluator.swing.Element.FunctionElement; |
21 | 26 |
import org.gvsig.expressionevaluator.swing.Element.GroupElement; |
22 | 27 |
import org.gvsig.expressionevaluator.swing.ElementFactory; |
28 |
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingLocator; |
|
23 | 29 |
import org.gvsig.expressionevaluator.swing.ExpressionPickerController; |
24 | 30 |
import org.gvsig.expressionevaluator.swing.FunctionAdditionalPanelFactory; |
25 | 31 |
import org.gvsig.expressionevaluator.swing.JExpressionPicker; |
... | ... | |
29 | 35 |
import org.gvsig.expressionevaluator.swing.impl.elements.DefaultGroupElement; |
30 | 36 |
import org.gvsig.tools.ToolsLocator; |
31 | 37 |
import org.gvsig.tools.i18n.I18nManager; |
38 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
|
39 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
|
40 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
|
41 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
|
32 | 42 |
|
33 | 43 |
public class DefaultExpressionEvaluatorSwingManager |
34 | 44 |
implements ExpressionEvaluatorSwingManager { |
... | ... | |
104 | 114 |
}); |
105 | 115 |
return factories; |
106 | 116 |
} |
117 |
|
|
118 |
private static class CreateJExpressionBuilderAction extends AbstractAction { |
|
119 |
|
|
120 |
private JTextComponent jtext; |
|
121 |
|
|
122 |
public CreateJExpressionBuilderAction(JTextComponent jtext) { |
|
123 |
this.jtext = jtext; |
|
124 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
|
125 |
this.putValue( |
|
126 |
Action.ACTION_COMMAND_KEY, |
|
127 |
"CreateJExpressionBuilderAction" |
|
128 |
); |
|
129 |
this.putValue( |
|
130 |
Action.NAME, |
|
131 |
i18n.getTranslation("_Show_expression_builder") |
|
132 |
); |
|
133 |
this.putValue( |
|
134 |
Action.SMALL_ICON, |
|
135 |
ToolsSwingLocator.getIconThemeManager().getCurrent().get("picker-expression") |
|
136 |
); |
|
137 |
} |
|
138 |
|
|
139 |
@Override |
|
140 |
public void actionPerformed(ActionEvent e) { |
|
141 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
|
142 |
WindowManager_v2 winmgr = (WindowManager_v2) ToolsSwingLocator.getWindowManager(); |
|
143 |
final JExpressionBuilder panel = ExpressionEvaluatorSwingLocator.getManager().createJExpressionBuilder(); |
|
144 |
final Dialog dialog = winmgr.createDialog( |
|
145 |
panel.asJComponent(), |
|
146 |
i18n.getTranslation("_Expression_builder"), |
|
147 |
null, |
|
148 |
WindowManager_v2.BUTTONS_OK_CANCEL |
|
149 |
); |
|
150 |
dialog.addActionListener(new ActionListener() { |
|
151 |
@Override |
|
152 |
public void actionPerformed(ActionEvent e2) { |
|
153 |
if( dialog.getAction()==WindowManager_v2.BUTTON_OK ) { |
|
154 |
if( ExpressionUtils.isDynamicText(jtext.getText())) { |
|
155 |
jtext.replaceSelection( |
|
156 |
panel.getExpression().getPhrase() |
|
157 |
); |
|
158 |
} else { |
|
159 |
jtext.replaceSelection( |
|
160 |
ExpressionUtils.surroundByDynamicTextTag( |
|
161 |
panel.getExpression().getPhrase(), |
|
162 |
true |
|
163 |
) |
|
164 |
); |
|
165 |
} |
|
166 |
} |
|
167 |
} |
|
168 |
}); |
|
169 |
dialog.show(WindowManager.MODE.DIALOG); |
|
170 |
} |
|
171 |
|
|
172 |
} |
|
173 |
|
|
174 |
@Override |
|
175 |
public Action createJExpressionBuilderAction(JTextComponent jtext) { |
|
176 |
Action action = new CreateJExpressionBuilderAction(jtext); |
|
177 |
return action; |
|
178 |
} |
|
107 | 179 |
|
108 | 180 |
@Override |
109 | 181 |
public JExpressionBuilder createJExpressionBuilder() { |
Also available in: Unified diff