| ... |
... |
@@ -22,7 +22,6 @@ package fr.ird.observe.client.datasource.presets; |
|
22
|
22
|
* #L%
|
|
23
|
23
|
*/
|
|
24
|
24
|
|
|
25
|
|
-import fr.ird.observe.client.ClientUIContextApplicationComponent;
|
|
26
|
25
|
import fr.ird.observe.client.WithClientUIContextApi;
|
|
27
|
26
|
import fr.ird.observe.client.configuration.ClientConfig;
|
|
28
|
27
|
import fr.ird.observe.dto.presets.RemoteDataSourceConfiguration;
|
| ... |
... |
@@ -34,9 +33,9 @@ import org.nuiton.jaxx.runtime.swing.renderer.DecoratorListCellRenderer; |
|
34
|
33
|
import javax.swing.DefaultListModel;
|
|
35
|
34
|
import javax.swing.JComponent;
|
|
36
|
35
|
import javax.swing.JPanel;
|
|
37
|
|
-import javax.swing.JSplitPane;
|
|
38
|
|
-import javax.swing.KeyStroke;
|
|
|
36
|
+import javax.swing.JTabbedPane;
|
|
39
|
37
|
import javax.swing.SwingUtilities;
|
|
|
38
|
+import javax.swing.event.ChangeEvent;
|
|
40
|
39
|
import java.awt.CardLayout;
|
|
41
|
40
|
import java.awt.event.KeyEvent;
|
|
42
|
41
|
import java.util.List;
|
| ... |
... |
@@ -64,60 +63,95 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC |
|
64
|
63
|
@Override
|
|
65
|
64
|
public void afterInit(RemotePresetsUI ui) {
|
|
66
|
65
|
|
|
67
|
|
- for (Object o : ui.get$objectMap().values()) {
|
|
68
|
|
- if (o instanceof JSplitPane) {
|
|
69
|
|
- init((JSplitPane) o);
|
|
70
|
|
- }
|
|
|
66
|
+ initRemotePanel(ui);
|
|
|
67
|
+ initServerPanel(ui);
|
|
|
68
|
+
|
|
|
69
|
+ ui.getTabs().addChangeListener(this::onTabChanged);
|
|
|
70
|
+
|
|
|
71
|
+ onTabChanged(null);
|
|
|
72
|
+ }
|
|
|
73
|
+
|
|
|
74
|
+ void setServerModified(KeyEvent event) {
|
|
|
75
|
+ if (event.isActionKey()) {
|
|
|
76
|
+ return;
|
|
71
|
77
|
}
|
|
|
78
|
+ ui.getModel().setServerModified(true);
|
|
|
79
|
+ }
|
|
72
|
80
|
|
|
73
|
|
- Decorator remoteDecorator = ClientConfig.getDecoratorService().getDecoratorByType(RemoteDataSourceConfiguration.class, RemoteDataSourceConfiguration.WITH_URL);
|
|
|
81
|
+ void setRemoteModified(KeyEvent event) {
|
|
|
82
|
+ if (event.isActionKey()) {
|
|
|
83
|
+ return;
|
|
|
84
|
+ }
|
|
|
85
|
+ ui.getModel().setRemoteModified(true);
|
|
|
86
|
+ }
|
|
|
87
|
+
|
|
|
88
|
+ private void onTabChanged(ChangeEvent e) {
|
|
|
89
|
+ JTabbedPane tabbedPane = e == null ? ui.getTabs() : (JTabbedPane) e.getSource();
|
|
|
90
|
+ int selectedIndex = tabbedPane.getSelectedIndex();
|
|
|
91
|
+ JComponent toFocus = ui.getCreateAction();
|
|
|
92
|
+ switch (selectedIndex) {
|
|
|
93
|
+ case 0:
|
|
|
94
|
+ if (ui.getServerForm().isVisible()) {
|
|
|
95
|
+ toFocus = ui.getServerName();
|
|
|
96
|
+ }
|
|
|
97
|
+ break;
|
|
|
98
|
+ case 1:
|
|
|
99
|
+ if (ui.getRemoteForm().isVisible()) {
|
|
|
100
|
+ toFocus = ui.getRemoteName();
|
|
|
101
|
+ }
|
|
|
102
|
+ break;
|
|
|
103
|
+ }
|
|
|
104
|
+ SwingUtilities.invokeLater(toFocus::requestFocusInWindow);
|
|
|
105
|
+ }
|
|
|
106
|
+
|
|
|
107
|
+ private void initRemotePanel(RemotePresetsUI ui) {
|
|
|
108
|
+ Decorator remoteDecorator = getDecoratorService().getDecoratorByType(RemoteDataSourceConfiguration.class, RemoteDataSourceConfiguration.WITH_URL);
|
|
74
|
109
|
|
|
75
|
110
|
ui.getRemoteConfigurations().setCellRenderer(new DecoratorListCellRenderer<>(remoteDecorator));
|
|
76
|
111
|
DefaultListModel<RemoteDataSourceConfiguration> remoteModel = new DefaultListModel<>();
|
|
77
|
|
- ui.getModel().getRemoteDataSourceConfigurations().forEach(remoteModel::addElement);
|
|
|
112
|
+ RemotePresetsUIModel model = ui.getModel();
|
|
|
113
|
+ model.getRemoteDataSourceConfigurations().forEach(remoteModel::addElement);
|
|
78
|
114
|
|
|
79
|
115
|
ui.getRemoteConfigurations().setModel(remoteModel);
|
|
80
|
116
|
|
|
81
|
117
|
ui.getRemoteConfigurations().addListSelectionListener(evt -> {
|
|
82
|
118
|
|
|
83
|
119
|
if (ui.getRemoteConfigurations().isSelectionEmpty()) {
|
|
84
|
|
-
|
|
85
|
|
- ui.getModel().setRemoteDataSourceConfiguration(null);
|
|
86
|
|
- ui.getModel().setRemoteModified(false);
|
|
|
120
|
+ model.setRemoteDataSourceConfiguration(null);
|
|
|
121
|
+ model.setRemoteModified(false);
|
|
87
|
122
|
} else {
|
|
88
|
|
- ui.getModel().setRemoteDataSourceConfiguration(ui.getRemoteConfigurations().getSelectedValue());
|
|
|
123
|
+ model.setRemoteDataSourceConfiguration(ui.getRemoteConfigurations().getSelectedValue());
|
|
89
|
124
|
ui.getRemoteName().requestFocusInWindow();
|
|
90
|
125
|
}
|
|
91
|
126
|
});
|
|
92
|
127
|
|
|
93
|
|
- ui.getModel().addPropertyChangeListener("remoteDataSourceConfigurations", evt -> {
|
|
|
128
|
+ model.addPropertyChangeListener("remoteDataSourceConfigurations", evt -> {
|
|
94
|
129
|
|
|
95
|
130
|
@SuppressWarnings("unchecked") List<RemoteDataSourceConfiguration> newValue = (List<RemoteDataSourceConfiguration>) evt.getNewValue();
|
|
96
|
131
|
|
|
97
|
|
- DefaultListModel<RemoteDataSourceConfiguration> model = (DefaultListModel<RemoteDataSourceConfiguration>) ui.getRemoteConfigurations().getModel();
|
|
98
|
|
- model.clear();
|
|
|
132
|
+ DefaultListModel<RemoteDataSourceConfiguration> listModel = (DefaultListModel<RemoteDataSourceConfiguration>) ui.getRemoteConfigurations().getModel();
|
|
|
133
|
+ listModel.clear();
|
|
99
|
134
|
for (RemoteDataSourceConfiguration remoteDataSourceConfiguration : newValue) {
|
|
100
|
|
- model.addElement(remoteDataSourceConfiguration);
|
|
|
135
|
+ listModel.addElement(remoteDataSourceConfiguration);
|
|
101
|
136
|
}
|
|
102
|
137
|
|
|
103
|
138
|
});
|
|
104
|
139
|
|
|
105
|
|
- ui.getModel().addPropertyChangeListener("remoteDataSourceConfiguration", evt -> {
|
|
|
140
|
+ model.addPropertyChangeListener("remoteDataSourceConfiguration", evt -> {
|
|
106
|
141
|
|
|
107
|
142
|
RemoteDataSourceConfiguration oldValue = (RemoteDataSourceConfiguration) evt.getOldValue();
|
|
108
|
|
-
|
|
109
|
|
- if (ui.getModel().getRemoteDataSourceConfiguration() == null) {
|
|
|
143
|
+ if (model.getRemoteDataSourceConfiguration() == null) {
|
|
110
|
144
|
((CardLayout) ui.getRemoteContentPanel().getLayout()).show(ui.getRemoteContentPanel(), "empty");
|
|
111
|
145
|
ui.getCreateAction().requestFocusInWindow();
|
|
112
|
146
|
} else {
|
|
113
|
147
|
if (oldValue == null) {
|
|
114
|
148
|
((CardLayout) ui.getRemoteContentPanel().getLayout()).show(ui.getRemoteContentPanel(), "form");
|
|
115
|
149
|
}
|
|
116
|
|
- ui.getModel().setRemoteModified(false);
|
|
|
150
|
+ model.setRemoteModified(false);
|
|
117
|
151
|
}
|
|
118
|
152
|
SwingUtilities.invokeLater(ui::repaint);
|
|
119
|
153
|
});
|
|
120
|
|
- ui.getModel().addPropertyChangeListener("remoteCreateMode", evt -> {
|
|
|
154
|
+ model.addPropertyChangeListener("remoteCreateMode", evt -> {
|
|
121
|
155
|
JPanel remoteActions = ui.getRemoteActions();
|
|
122
|
156
|
if ((Boolean) evt.getNewValue()) {
|
|
123
|
157
|
remoteActions.remove(ui.getResetRemoteAction());
|
| ... |
... |
@@ -132,54 +166,60 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC |
|
132
|
166
|
}
|
|
133
|
167
|
});
|
|
134
|
168
|
ui.getRemoteActions().remove(0);
|
|
135
|
|
- Decorator serverDecorator = ClientUIContextApplicationComponent.value().getDecoratorService().getDecoratorByType(ServerDataSourceConfiguration.class, ServerDataSourceConfiguration.WITH_URL);
|
|
|
169
|
+
|
|
|
170
|
+ if (ui.getRemoteConfigurations().getModel().getSize() > 0) {
|
|
|
171
|
+ ui.getRemoteConfigurations().setSelectedIndex(0);
|
|
|
172
|
+ }
|
|
|
173
|
+ }
|
|
|
174
|
+
|
|
|
175
|
+ private void initServerPanel(RemotePresetsUI ui) {
|
|
|
176
|
+ RemotePresetsUIModel model = ui.getModel();
|
|
|
177
|
+ Decorator serverDecorator = getDecoratorService().getDecoratorByType(ServerDataSourceConfiguration.class, ServerDataSourceConfiguration.WITH_URL);
|
|
136
|
178
|
ui.getServerConfigurations().setCellRenderer(new DecoratorListCellRenderer<>(serverDecorator));
|
|
137
|
179
|
DefaultListModel<ServerDataSourceConfiguration> ServerModel = new DefaultListModel<>();
|
|
138
|
|
- ui.getModel().getServerDataSourceConfigurations().forEach(ServerModel::addElement);
|
|
|
180
|
+ model.getServerDataSourceConfigurations().forEach(ServerModel::addElement);
|
|
139
|
181
|
|
|
140
|
182
|
ui.getServerConfigurations().setModel(ServerModel);
|
|
141
|
183
|
|
|
142
|
184
|
ui.getServerConfigurations().addListSelectionListener(evt -> {
|
|
143
|
|
-
|
|
144
|
185
|
if (ui.getServerConfigurations().isSelectionEmpty()) {
|
|
145
|
|
-
|
|
146
|
|
- ui.getModel().setServerDataSourceConfiguration(null);
|
|
147
|
|
- ui.getModel().setServerModified(false);
|
|
|
186
|
+ model.setServerDataSourceConfiguration(null);
|
|
|
187
|
+ model.setServerModified(false);
|
|
148
|
188
|
} else {
|
|
149
|
|
- ui.getModel().setServerDataSourceConfiguration(ui.getServerConfigurations().getSelectedValue());
|
|
|
189
|
+ model.setServerDataSourceConfiguration(ui.getServerConfigurations().getSelectedValue());
|
|
150
|
190
|
ui.getServerName().requestFocusInWindow();
|
|
151
|
191
|
}
|
|
152
|
192
|
});
|
|
153
|
193
|
|
|
154
|
|
- ui.getModel().addPropertyChangeListener("serverDataSourceConfigurations", evt -> {
|
|
|
194
|
+ model.addPropertyChangeListener("serverDataSourceConfigurations", evt -> {
|
|
155
|
195
|
|
|
156
|
196
|
@SuppressWarnings("unchecked") List<ServerDataSourceConfiguration> newValue = (List<ServerDataSourceConfiguration>) evt.getNewValue();
|
|
157
|
197
|
|
|
158
|
|
- DefaultListModel<ServerDataSourceConfiguration> model = (DefaultListModel<ServerDataSourceConfiguration>) ui.getServerConfigurations().getModel();
|
|
159
|
|
- model.clear();
|
|
|
198
|
+ DefaultListModel<ServerDataSourceConfiguration> listModel = (DefaultListModel<ServerDataSourceConfiguration>) ui.getServerConfigurations().getModel();
|
|
|
199
|
+ listModel.clear();
|
|
160
|
200
|
for (ServerDataSourceConfiguration ServerDataSourceConfiguration : newValue) {
|
|
161
|
|
- model.addElement(ServerDataSourceConfiguration);
|
|
|
201
|
+ listModel.addElement(ServerDataSourceConfiguration);
|
|
162
|
202
|
}
|
|
163
|
203
|
|
|
164
|
204
|
});
|
|
165
|
205
|
|
|
166
|
|
- ui.getModel().addPropertyChangeListener("serverDataSourceConfiguration", evt -> {
|
|
|
206
|
+ model.addPropertyChangeListener("serverDataSourceConfiguration", evt -> {
|
|
167
|
207
|
|
|
168
|
208
|
ServerDataSourceConfiguration oldValue = (ServerDataSourceConfiguration) evt.getOldValue();
|
|
169
|
209
|
|
|
170
|
|
- if (ui.getModel().getServerDataSourceConfiguration() == null) {
|
|
|
210
|
+ if (model.getServerDataSourceConfiguration() == null) {
|
|
171
|
211
|
((CardLayout) ui.getServerContentPanel().getLayout()).show(ui.getServerContentPanel(), "empty");
|
|
172
|
212
|
ui.getCreateAction().requestFocusInWindow();
|
|
173
|
213
|
} else {
|
|
174
|
214
|
if (oldValue == null) {
|
|
175
|
215
|
((CardLayout) ui.getServerContentPanel().getLayout()).show(ui.getServerContentPanel(), "form");
|
|
176
|
216
|
}
|
|
177
|
|
- ui.getModel().setServerModified(false);
|
|
|
217
|
+ model.setServerModified(false);
|
|
178
|
218
|
}
|
|
179
|
219
|
SwingUtilities.invokeLater(ui::repaint);
|
|
180
|
220
|
});
|
|
181
|
221
|
|
|
182
|
|
- ui.getModel().addPropertyChangeListener("serverCreateMode", evt -> {
|
|
|
222
|
+ model.addPropertyChangeListener("serverCreateMode", evt -> {
|
|
183
|
223
|
JPanel serverActions = ui.getServerActions();
|
|
184
|
224
|
if ((Boolean) evt.getNewValue()) {
|
|
185
|
225
|
serverActions.remove(ui.getResetServerAction());
|
| ... |
... |
@@ -196,33 +236,8 @@ public class RemotePresetsUIHandler implements UIHandler<RemotePresetsUI>, WithC |
|
196
|
236
|
});
|
|
197
|
237
|
|
|
198
|
238
|
ui.getServerActions().remove(0);
|
|
199
|
|
- ui.getCreateAction().requestFocusInWindow();
|
|
200
|
|
-
|
|
201
|
|
- if (ui.getRemoteConfigurations().getModel().getSize() > 0) {
|
|
202
|
|
- ui.getRemoteConfigurations().setSelectedIndex(0);
|
|
203
|
|
- }
|
|
204
|
|
-
|
|
205
|
239
|
if (ui.getServerConfigurations().getModel().getSize() > 0) {
|
|
206
|
240
|
ui.getServerConfigurations().setSelectedIndex(0);
|
|
207
|
241
|
}
|
|
208
|
242
|
}
|
|
209
|
|
-
|
|
210
|
|
- protected void init(JSplitPane editor) {
|
|
211
|
|
- editor.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
|
|
212
|
|
- .put(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0), "none");
|
|
213
|
|
- }
|
|
214
|
|
-
|
|
215
|
|
- protected void setServerModified(KeyEvent event) {
|
|
216
|
|
- if (event.isActionKey()) {
|
|
217
|
|
- return;
|
|
218
|
|
- }
|
|
219
|
|
- ui.getModel().setServerModified(true);
|
|
220
|
|
- }
|
|
221
|
|
-
|
|
222
|
|
- protected void setRemoteModified(KeyEvent event) {
|
|
223
|
|
- if (event.isActionKey()) {
|
|
224
|
|
- return;
|
|
225
|
|
- }
|
|
226
|
|
- ui.getModel().setRemoteModified(true);
|
|
227
|
|
- }
|
|
228
|
243
|
} |