Project

General

Profile

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
}
(1-1/7)