1
|
package eu.dnetlib.client.leftColumn;
|
2
|
|
3
|
import java.util.ArrayList;
|
4
|
|
5
|
import com.github.gwtbootstrap.client.ui.AccordionGroup;
|
6
|
import com.github.gwtbootstrap.client.ui.Form;
|
7
|
import com.github.gwtbootstrap.client.ui.TextBox;
|
8
|
import com.github.gwtbootstrap.client.ui.constants.FormType;
|
9
|
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
10
|
import com.github.gwtbootstrap.client.ui.event.HideEvent;
|
11
|
import com.github.gwtbootstrap.client.ui.event.HideHandler;
|
12
|
import com.github.gwtbootstrap.client.ui.event.ShowEvent;
|
13
|
import com.github.gwtbootstrap.client.ui.event.ShowHandler;
|
14
|
import com.google.gwt.event.dom.client.ChangeEvent;
|
15
|
import com.google.gwt.event.dom.client.ChangeHandler;
|
16
|
import com.google.gwt.user.client.Window;
|
17
|
import com.google.gwt.user.client.ui.FlowPanel;
|
18
|
import com.google.gwt.user.client.ui.IsWidget;
|
19
|
import com.google.gwt.user.client.ui.Widget;
|
20
|
|
21
|
import eu.dnetlib.client.Generate;
|
22
|
import eu.dnetlib.client.widgets.FormFieldSet;
|
23
|
import eu.dnetlib.shared.ValuesOfFields;
|
24
|
|
25
|
public class AppearancePanel implements IsWidget {
|
26
|
|
27
|
private FlowPanel flowPanel = new FlowPanel();
|
28
|
|
29
|
private ArrayList<AccordionGroup> appearancePanels = new ArrayList<AccordionGroup>();
|
30
|
|
31
|
public ArrayList<AccordionGroup> getAppearancePanels() {
|
32
|
return appearancePanels;
|
33
|
}
|
34
|
|
35
|
|
36
|
public interface ChangingNameListener{
|
37
|
public void onEvent(String name);
|
38
|
}
|
39
|
|
40
|
private ChangingNameListener changingNameListener;
|
41
|
|
42
|
public void setChaningNameListenr(ChangingNameListener changingNameListener){
|
43
|
this.changingNameListener = changingNameListener;
|
44
|
}
|
45
|
|
46
|
public AppearancePanel() {
|
47
|
|
48
|
|
49
|
designAppearance();
|
50
|
designSpacing();
|
51
|
}
|
52
|
|
53
|
public void designAppearance(){
|
54
|
|
55
|
designAppearanceForTitle();
|
56
|
designAppearanceForSubtitle();
|
57
|
designAppearanceForXaxis();
|
58
|
designAppearanceForYaxis();
|
59
|
|
60
|
}
|
61
|
|
62
|
public void addAppearanceForDataserie(final int numberOfColumn){
|
63
|
|
64
|
final AccordionGroup appearanceGroupPanel = new AccordionGroup();
|
65
|
appearancePanels.add(appearanceGroupPanel);
|
66
|
|
67
|
Form appearanceForm = new Form();
|
68
|
appearanceForm.setType(FormType.HORIZONTAL);
|
69
|
|
70
|
|
71
|
final TextBox nameOfDataseries = new TextBox();
|
72
|
FormFieldSet nameOf = new FormFieldSet("Name of dataseries", nameOfDataseries);
|
73
|
nameOfDataseries.addChangeHandler(new ChangeHandler() {
|
74
|
|
75
|
@Override
|
76
|
public void onChange(ChangeEvent event) {
|
77
|
if(changingNameListener!=null){
|
78
|
changingNameListener.onEvent(nameOfDataseries.getText());
|
79
|
}
|
80
|
if(!nameOfDataseries.getText().equals("")){
|
81
|
appearanceGroupPanel.setHeading("APPEARANCE FOR " + "\""+nameOfDataseries.getText()+"\"");
|
82
|
|
83
|
}else{
|
84
|
appearanceGroupPanel.setHeading("APPEARANCE FOR DATASERIES " + (numberOfColumn+1));
|
85
|
}
|
86
|
ValuesOfFields.getInstance().getColumnsDataList().get(numberOfColumn).setXaxisTitle(nameOfDataseries.getText());
|
87
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
88
|
}
|
89
|
});
|
90
|
|
91
|
|
92
|
appearanceForm.add(nameOf);
|
93
|
|
94
|
|
95
|
appearanceGroupPanel.addStyleName("accordionPanel");
|
96
|
appearanceGroupPanel.setHeading("APPEARANCE FOR DATASERIES "+(numberOfColumn+1));
|
97
|
appearanceGroupPanel.getHeading().addStyleName("accordionHeading");
|
98
|
appearanceGroupPanel.add(appearanceForm);
|
99
|
appearanceGroupPanel.setIcon(IconType.PLUS);
|
100
|
appearanceGroupPanel.setDefaultOpen(false);
|
101
|
appearanceGroupPanel.addShowHandler(new ShowHandler() {
|
102
|
@Override
|
103
|
public void onShow(ShowEvent showEvent) {
|
104
|
appearanceGroupPanel.setIcon(IconType.MINUS);
|
105
|
}
|
106
|
});
|
107
|
|
108
|
appearanceGroupPanel.addHideHandler(new HideHandler() {
|
109
|
@Override
|
110
|
public void onHide(HideEvent hideEvent) {
|
111
|
appearanceGroupPanel.setIcon(IconType.PLUS);
|
112
|
}
|
113
|
});
|
114
|
|
115
|
flowPanel.add(appearanceGroupPanel);
|
116
|
}
|
117
|
|
118
|
public void deleteAppearanceOfDataseries(int deletedColumn){
|
119
|
flowPanel.remove(appearancePanels.get(deletedColumn));
|
120
|
appearancePanels.remove(deletedColumn);
|
121
|
}
|
122
|
|
123
|
public void designSpacing(){
|
124
|
|
125
|
Form borderOptionsForm = new Form();
|
126
|
borderOptionsForm.setType(FormType.HORIZONTAL);
|
127
|
|
128
|
final TextBox spaceTopTextBox = new TextBox();
|
129
|
FormFieldSet spaceTopFieldSet = new FormFieldSet("Space from top", spaceTopTextBox);
|
130
|
spaceTopTextBox.getElement().setAttribute("type", "number");
|
131
|
spaceTopTextBox.setText("5");
|
132
|
spaceTopTextBox.addChangeHandler(new ChangeHandler() {
|
133
|
|
134
|
@Override
|
135
|
public void onChange(ChangeEvent event) {
|
136
|
ValuesOfFields.getInstance().setSpacingTop(Integer.parseInt(spaceTopTextBox.getText()));
|
137
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
|
138
|
}
|
139
|
});
|
140
|
|
141
|
final TextBox spaceBottomTextBox = new TextBox();
|
142
|
FormFieldSet spaceBottomFieldSet = new FormFieldSet("Space from bottom", spaceBottomTextBox);
|
143
|
spaceBottomTextBox.getElement().setAttribute("type", "number");
|
144
|
spaceBottomTextBox.setText("0");
|
145
|
spaceBottomTextBox.addChangeHandler(new ChangeHandler() {
|
146
|
|
147
|
@Override
|
148
|
public void onChange(ChangeEvent event) {
|
149
|
ValuesOfFields.getInstance().setSpacingBottom(Integer.parseInt(spaceBottomTextBox.getText()));
|
150
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
|
151
|
}
|
152
|
});
|
153
|
|
154
|
final TextBox spaceLeftTextBox = new TextBox();
|
155
|
FormFieldSet spaceLeftFieldSet = new FormFieldSet("Space from left", spaceLeftTextBox);
|
156
|
spaceLeftTextBox.getElement().setAttribute("type", "number");
|
157
|
spaceLeftTextBox.setText("0");
|
158
|
spaceLeftTextBox.addChangeHandler(new ChangeHandler() {
|
159
|
|
160
|
@Override
|
161
|
public void onChange(ChangeEvent event) {
|
162
|
ValuesOfFields.getInstance().setSpacingLeft(Integer.parseInt(spaceLeftTextBox.getText()));
|
163
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
|
164
|
}
|
165
|
});
|
166
|
|
167
|
final TextBox spaceRightTextBox = new TextBox();
|
168
|
FormFieldSet spaceRightFieldSet = new FormFieldSet("Space from right", spaceRightTextBox);
|
169
|
spaceRightTextBox.getElement().setAttribute("type", "number");
|
170
|
spaceRightTextBox.setText("0");
|
171
|
spaceRightTextBox.addChangeHandler(new ChangeHandler() {
|
172
|
|
173
|
@Override
|
174
|
public void onChange(ChangeEvent event) {
|
175
|
ValuesOfFields.getInstance().setSpacingRight(Integer.parseInt(spaceRightTextBox.getText()));
|
176
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
|
177
|
}
|
178
|
});
|
179
|
borderOptionsForm.add(spaceTopFieldSet);
|
180
|
borderOptionsForm.add(spaceBottomFieldSet);
|
181
|
borderOptionsForm.add(spaceRightFieldSet);
|
182
|
borderOptionsForm.add(spaceLeftFieldSet);
|
183
|
|
184
|
|
185
|
final AccordionGroup borderOptionsGroupPanel = new AccordionGroup();
|
186
|
borderOptionsGroupPanel.addStyleName("accordionPanel");
|
187
|
borderOptionsGroupPanel.setHeading("SPACING");
|
188
|
borderOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
|
189
|
borderOptionsGroupPanel.add(borderOptionsForm);
|
190
|
borderOptionsGroupPanel.setIcon(IconType.MINUS);
|
191
|
borderOptionsGroupPanel.setDefaultOpen(true);
|
192
|
borderOptionsGroupPanel.addShowHandler(new ShowHandler() {
|
193
|
@Override
|
194
|
public void onShow(ShowEvent showEvent) {
|
195
|
borderOptionsGroupPanel.setIcon(IconType.MINUS);
|
196
|
}
|
197
|
});
|
198
|
|
199
|
borderOptionsGroupPanel.addHideHandler(new HideHandler() {
|
200
|
@Override
|
201
|
public void onHide(HideEvent hideEvent) {
|
202
|
borderOptionsGroupPanel.setIcon(IconType.PLUS);
|
203
|
}
|
204
|
});
|
205
|
|
206
|
|
207
|
flowPanel.add(borderOptionsGroupPanel);
|
208
|
}
|
209
|
|
210
|
public void designAppearanceForTitle(){
|
211
|
Form appearanceOptionsForm = new Form();
|
212
|
appearanceOptionsForm.setType(FormType.HORIZONTAL);
|
213
|
|
214
|
final TextBox textColorTextBox = new TextBox();
|
215
|
FormFieldSet textColorFieldSet = new FormFieldSet("Text color", textColorTextBox);
|
216
|
textColorTextBox.addChangeHandler(new ChangeHandler() {
|
217
|
|
218
|
@Override
|
219
|
public void onChange(ChangeEvent event) {
|
220
|
ValuesOfFields.getInstance().setColorTitle(textColorTextBox.getText());
|
221
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
222
|
}
|
223
|
});
|
224
|
|
225
|
final TextBox fontSizeTextBox = new TextBox();
|
226
|
fontSizeTextBox.getElement().setAttribute("type", "number");
|
227
|
fontSizeTextBox.addChangeHandler(new ChangeHandler() {
|
228
|
|
229
|
@Override
|
230
|
public void onChange(ChangeEvent event) {
|
231
|
ValuesOfFields.getInstance().setSizeTitle(fontSizeTextBox.getText());
|
232
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
233
|
}
|
234
|
});
|
235
|
|
236
|
FormFieldSet fontSizeFieldSet = new FormFieldSet("Font size", fontSizeTextBox);
|
237
|
|
238
|
|
239
|
|
240
|
appearanceOptionsForm.add(textColorFieldSet);
|
241
|
appearanceOptionsForm.add(fontSizeFieldSet);
|
242
|
|
243
|
|
244
|
final AccordionGroup appearanceOptionsGroupPanel = new AccordionGroup();
|
245
|
appearanceOptionsGroupPanel.addStyleName("accordionPanel");
|
246
|
appearanceOptionsGroupPanel.setHeading("TITLE");
|
247
|
appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
|
248
|
appearanceOptionsGroupPanel.add(appearanceOptionsForm);
|
249
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
250
|
appearanceOptionsGroupPanel.setDefaultOpen(false);
|
251
|
appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
|
252
|
@Override
|
253
|
public void onShow(ShowEvent showEvent) {
|
254
|
appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
|
255
|
}
|
256
|
});
|
257
|
appearanceOptionsGroupPanel.addHideHandler(new HideHandler() {
|
258
|
@Override
|
259
|
public void onHide(HideEvent hideEvent) {
|
260
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
261
|
}
|
262
|
});
|
263
|
|
264
|
|
265
|
flowPanel.add(appearanceOptionsGroupPanel);
|
266
|
}
|
267
|
|
268
|
public void designAppearanceForSubtitle(){
|
269
|
Form appearanceOptionsForm = new Form();
|
270
|
appearanceOptionsForm.setType(FormType.HORIZONTAL);
|
271
|
|
272
|
final TextBox textColorTextBox = new TextBox();
|
273
|
FormFieldSet textColorFieldSet = new FormFieldSet("Text color", textColorTextBox);
|
274
|
textColorTextBox.addChangeHandler(new ChangeHandler() {
|
275
|
|
276
|
@Override
|
277
|
public void onChange(ChangeEvent event) {
|
278
|
ValuesOfFields.getInstance().setColorSubtitle(textColorTextBox.getText());
|
279
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
280
|
}
|
281
|
});
|
282
|
|
283
|
final TextBox fontSizeTextBox = new TextBox();
|
284
|
fontSizeTextBox.getElement().setAttribute("type", "number");
|
285
|
fontSizeTextBox.addChangeHandler(new ChangeHandler() {
|
286
|
|
287
|
@Override
|
288
|
public void onChange(ChangeEvent event) {
|
289
|
ValuesOfFields.getInstance().setSizeSubtitle(fontSizeTextBox.getText());
|
290
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
291
|
}
|
292
|
});
|
293
|
|
294
|
FormFieldSet fontSizeFieldSet = new FormFieldSet("Font size", fontSizeTextBox);
|
295
|
|
296
|
|
297
|
appearanceOptionsForm.add(textColorFieldSet);
|
298
|
appearanceOptionsForm.add(fontSizeFieldSet);
|
299
|
|
300
|
|
301
|
final AccordionGroup appearanceOptionsGroupPanel = new AccordionGroup();
|
302
|
appearanceOptionsGroupPanel.addStyleName("accordionPanel");
|
303
|
appearanceOptionsGroupPanel.setHeading("SUBTITLE");
|
304
|
appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
|
305
|
appearanceOptionsGroupPanel.add(appearanceOptionsForm);
|
306
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
307
|
appearanceOptionsGroupPanel.setDefaultOpen(false);
|
308
|
appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
|
309
|
@Override
|
310
|
public void onShow(ShowEvent showEvent) {
|
311
|
appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
|
312
|
}
|
313
|
});
|
314
|
appearanceOptionsGroupPanel.addHideHandler(new HideHandler() {
|
315
|
@Override
|
316
|
public void onHide(HideEvent hideEvent) {
|
317
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
318
|
}
|
319
|
});
|
320
|
|
321
|
|
322
|
flowPanel.add(appearanceOptionsGroupPanel);
|
323
|
}
|
324
|
|
325
|
public void designAppearanceForXaxis(){
|
326
|
Form appearanceOptionsForm = new Form();
|
327
|
appearanceOptionsForm.setType(FormType.HORIZONTAL);
|
328
|
|
329
|
final TextBox textColorTextBox = new TextBox();
|
330
|
FormFieldSet textColorFieldSet = new FormFieldSet("Text color", textColorTextBox);
|
331
|
textColorTextBox.addChangeHandler(new ChangeHandler() {
|
332
|
|
333
|
@Override
|
334
|
public void onChange(ChangeEvent event) {
|
335
|
ValuesOfFields.getInstance().setColorXaxis(textColorTextBox.getText());
|
336
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
337
|
}
|
338
|
});
|
339
|
|
340
|
final TextBox fontSizeTextBox = new TextBox();
|
341
|
fontSizeTextBox.getElement().setAttribute("type", "number");
|
342
|
fontSizeTextBox.addChangeHandler(new ChangeHandler() {
|
343
|
|
344
|
@Override
|
345
|
public void onChange(ChangeEvent event) {
|
346
|
ValuesOfFields.getInstance().setSizeXaxis(fontSizeTextBox.getText());
|
347
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
348
|
}
|
349
|
});
|
350
|
|
351
|
FormFieldSet fontSizeFieldSet = new FormFieldSet("Font size", fontSizeTextBox);
|
352
|
|
353
|
|
354
|
appearanceOptionsForm.add(textColorFieldSet);
|
355
|
appearanceOptionsForm.add(fontSizeFieldSet);
|
356
|
|
357
|
|
358
|
final AccordionGroup appearanceOptionsGroupPanel = new AccordionGroup();
|
359
|
appearanceOptionsGroupPanel.addStyleName("accordionPanel");
|
360
|
appearanceOptionsGroupPanel.setHeading("X-AXIS");
|
361
|
appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
|
362
|
appearanceOptionsGroupPanel.add(appearanceOptionsForm);
|
363
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
364
|
appearanceOptionsGroupPanel.setDefaultOpen(false);
|
365
|
appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
|
366
|
@Override
|
367
|
public void onShow(ShowEvent showEvent) {
|
368
|
appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
|
369
|
}
|
370
|
});
|
371
|
appearanceOptionsGroupPanel.addHideHandler(new HideHandler() {
|
372
|
@Override
|
373
|
public void onHide(HideEvent hideEvent) {
|
374
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
375
|
}
|
376
|
});
|
377
|
|
378
|
|
379
|
flowPanel.add(appearanceOptionsGroupPanel);
|
380
|
}
|
381
|
|
382
|
public void designAppearanceForYaxis(){
|
383
|
Form appearanceOptionsForm = new Form();
|
384
|
appearanceOptionsForm.setType(FormType.HORIZONTAL);
|
385
|
|
386
|
final TextBox textColorTextBox = new TextBox();
|
387
|
FormFieldSet textColorFieldSet = new FormFieldSet("Text color", textColorTextBox);
|
388
|
textColorTextBox.addChangeHandler(new ChangeHandler() {
|
389
|
|
390
|
@Override
|
391
|
public void onChange(ChangeEvent event) {
|
392
|
ValuesOfFields.getInstance().setColorYaxis(textColorTextBox.getText());
|
393
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
394
|
}
|
395
|
});
|
396
|
|
397
|
final TextBox fontSizeTextBox = new TextBox();
|
398
|
fontSizeTextBox.getElement().setAttribute("type", "number");
|
399
|
fontSizeTextBox.addChangeHandler(new ChangeHandler() {
|
400
|
|
401
|
@Override
|
402
|
public void onChange(ChangeEvent event) {
|
403
|
ValuesOfFields.getInstance().setSizeYaxis(fontSizeTextBox.getText());
|
404
|
Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
|
405
|
}
|
406
|
});
|
407
|
|
408
|
FormFieldSet fontSizeFieldSet = new FormFieldSet("Font size", fontSizeTextBox);
|
409
|
|
410
|
|
411
|
|
412
|
appearanceOptionsForm.add(textColorFieldSet);
|
413
|
appearanceOptionsForm.add(fontSizeFieldSet);
|
414
|
|
415
|
final AccordionGroup appearanceOptionsGroupPanel = new AccordionGroup();
|
416
|
appearanceOptionsGroupPanel.addStyleName("accordionPanel");
|
417
|
appearanceOptionsGroupPanel.setHeading("Y-AXIS");
|
418
|
appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
|
419
|
appearanceOptionsGroupPanel.add(appearanceOptionsForm);
|
420
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
421
|
appearanceOptionsGroupPanel.setDefaultOpen(false);
|
422
|
appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
|
423
|
@Override
|
424
|
public void onShow(ShowEvent showEvent) {
|
425
|
appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
|
426
|
}
|
427
|
});
|
428
|
appearanceOptionsGroupPanel.addHideHandler(new HideHandler() {
|
429
|
@Override
|
430
|
public void onHide(HideEvent hideEvent) {
|
431
|
appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
|
432
|
}
|
433
|
});
|
434
|
|
435
|
|
436
|
flowPanel.add(appearanceOptionsGroupPanel);
|
437
|
}
|
438
|
|
439
|
|
440
|
@Override
|
441
|
public Widget asWidget() {
|
442
|
// TODO Auto-generated method stub
|
443
|
return flowPanel;
|
444
|
}
|
445
|
|
446
|
}
|