Project

General

Profile

« Previous | Next » 

Revision 40306

View differences:

modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/shared/ValuesOfFields.java
497 497
			private int row;
498 498
			private String fieldValue;
499 499
			private String displayedFieldValue;
500
			private boolean enabled;
500 501
		
501 502
			public FilterClass(){
502 503
				
503 504
			}
504 505
			
506
			public boolean isEnabled() {
507
				return enabled;
508
			}
509

  
510
			public void setEnabled(boolean enabled) {
511
				this.enabled = enabled;
512
			}
513

  
505 514
			public String getDisplayedFieldValue() {
506 515
				return displayedFieldValue;
507 516
			}
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/shared/Col.java
60 60
		return this.extraLabel;
61 61
	}-*/;
62 62

  
63
	public final native String getHint()/*-{
64
		return this.hint;
65
	}-*/;
66

  
63 67
	
64 68

  
65 69
	
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/widgets/MultipleValuesWidget.java
97 97
    	this.field=field;
98 98
    	this.table=table;
99 99
    	for(int i=0;i<values.size();i++){
100
    		
100

  
101 101
    		if(valuesWidgetList.size()>i){
102 102
    			valuesWidgetList.get(i).setTable(table);
103 103
    			valuesWidgetList.get(i).setField(field);
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/widgets/ValuesWidget.java
36 36
    
37 37
    public ValuesWidget(String table, String field, final ArrayList<String> blacklist) {
38 38

  
39
    	this.blacklist = blacklist;
39 40
    	this.field = field;
40 41
    	this.table = table;
41 42
        autoCompleteWidget = new eu.dnetlib.client.widgets.AutoCompleteWidget("", "Search value...",table , field, blacklist);
......
50 51
        deleteIcon.addClickHandler(new ClickHandler() {
51 52
            @Override
52 53
            public void onClick(ClickEvent clickEvent) {
53
            	
54

  
54 55
            	if(getValue()!=null)//an den exei prolavei na valei value
55 56
            		ValuesWidget.this.blacklist.remove(ValuesWidget.this.blacklist.indexOf(getValue()));
56 57
                
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/widgets/AutoCompleteWidget.java
131 131
                            bringRecommendations();
132 132
                        }
133 133
                    };
134
                    timer.schedule(1000);
134
                    timer.schedule(750);
135 135

  
136 136
                } else {
137 137

  
......
143 143
                            bringRecommendations();
144 144
                        }
145 145
                    };
146
                    timer.schedule(1000);
146
                    timer.schedule(750);
147 147
                }
148 148
			}
149 149
		});
150 150
	}
151 151
	
152 152
	public void bringRecommendations(){
153
		if(!inputTextBox.getText().equals("") && inputTextBox.getText().length()>=3){
153
		if(!inputTextBox.getText().equals("") && inputTextBox.getText().length()>=1){
154 154
			suggestionList.clear();
155 155
			masterPanel.add(suggestionList);
156 156
			suggestionList.addStyleName("suggestionList");
......
161 161
			suggestionList.add(loadingLabel);
162 162
			suggestionList.add(tempImage);
163 163
			
164
			AjaxRequest(BASE_URL + "getFiltersData.php?table="+this.table+"&field="+this.field+"&input="+inputTextBox.getText());
164
			AjaxRequest(BASE_URL + "getFiltersData.php?table="+this.table+"&field="+this.field+"&input="+inputTextBox.getText()+"&type=final");
165 165
			if(searchingListener!=null){
166 166
				searchingListener.onSearch();
167 167
			}
......
196 196
									
197 197
									@Override
198 198
									public void onClick(ClickEvent event) {
199
										blacklist.add(anchor.getText());
199 200
										inputTextBox.setValue(anchor.getText());
200 201
										inputTextBox.setText(anchor.getText());
201 202
										inputTextBox.setEnabled(false);
......
220 221
									anchor.setText(anchor.getText()+"(added)");
221 222
									anchor.getElement().getStyle().setProperty("pointer-events", "none");
222 223
								}else{
223
									blacklist.add(filtersData.getData().get(i).toString());
224
									
224 225
								}
225 226
								suggestionList.add(anchor);
226 227
								
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/widgets/DropdownListWidget.java
34 34
	private ListBox masterListBox;
35 35
	private FocusPanel focusPanel;
36 36
	private boolean inDiv;
37
	private boolean isForTypeOfChart=false;
37 38
	
38 39
	public interface TreeListener{
39 40
		public void onEvent();
......
80 81
		
81 82
	}
82 83
	
84
	public DropdownListWidget(boolean isForTypeOfChart) {
85
		
86
		this.isForTypeOfChart = isForTypeOfChart;
87
		flowPanel = new FlowPanel();
88
		masterTree = new Tree();
89
		masterListBox = new ListBox();
90
		optionsPanel = new FlowPanel();
91
		treePanel = new FlowPanel();
92
		focusPanel = new FocusPanel();
93
		
94
		treePanel.setVisible(false);
95
		masterListBox.addMouseDownHandler(new MouseDownHandler() {//otan patithei to dropdown
96
			
97
			@Override
98
			public void onMouseDown(MouseDownEvent event) {
99
				event.preventDefault();
100
				treePanel.setVisible(!treePanel.isVisible());
101
				inDiv = !inDiv;
102
			}
103
		});
104
		
105
		masterListBox.getElement().getStyle().setMarginBottom(0.0, Unit.PX);
106
		
107
		optionsPanel.add(masterListBox);
108
		optionsPanel.add(focusPanel);
109
		
110
		focusPanel.add(treePanel);
111
		
112
		flowPanel.add(optionsPanel);
113
		
114
		
115
		styleTreePanel();
116
		modifyHandlers();
117
		
118
	}
119
	
83 120
	public ListBox getListBox(){
84 121
		return masterListBox;
85 122
	}
......
111 148
		
112 149
		treePanel.getElement().getStyle().setProperty("height", "auto");
113 150
		treePanel.getElement().getStyle().setProperty("max-height", "270px");
114
		treePanel.getElement().getStyle().setWidth(270.00, Unit.PX);
151
		treePanel.getElement().getStyle().setWidth(230.00, Unit.PX);
115 152
		treePanel.getElement().getStyle().setBorderWidth(1.00, Unit.PX);
116 153
		treePanel.getElement().getStyle().setBorderColor("#ccc");
117 154
		treePanel.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
......
139 176
					focusPanel.setFocus(false);
140 177
					treePanel.setVisible(!treePanel.isVisible());
141 178
					masterListBox.clear();
142
					masterListBox.addItem(event.getSelectedItem().getText());
179
					
180
					if(!isForTypeOfChart){
181
						if(event.getSelectedItem().getParentItem()!=null)
182
							masterListBox.addItem(event.getSelectedItem().getParentItem().getText()+"-"+event.getSelectedItem().getText());
183
						else
184
							masterListBox.addItem(event.getSelectedItem().getText());
185
					}else{
186
						masterListBox.addItem(event.getSelectedItem().getText());
187
					}
143 188
					RootPanel.get().getElement().getStyle().setPosition(Position.STATIC);
144 189
					if(treeListener!=null){
145 190
						treeListener.onEvent();
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/leftColumn/AppearancePanel.java
187 187
        borderOptionsGroupPanel.setHeading("SPACING");
188 188
        borderOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
189 189
        borderOptionsGroupPanel.add(borderOptionsForm);
190
        borderOptionsGroupPanel.setIcon(IconType.MINUS);
191
        borderOptionsGroupPanel.setDefaultOpen(true);
190
        borderOptionsGroupPanel.setIcon(IconType.PLUS);
192 191
        borderOptionsGroupPanel.addShowHandler(new ShowHandler() {
193 192
            @Override
194 193
            public void onShow(ShowEvent showEvent) {
......
246 245
        appearanceOptionsGroupPanel.setHeading("TITLE");
247 246
        appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
248 247
        appearanceOptionsGroupPanel.add(appearanceOptionsForm);
249
        appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
250
        appearanceOptionsGroupPanel.setDefaultOpen(false);
248
        appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
249
        appearanceOptionsGroupPanel.setDefaultOpen(true);
251 250
        appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
252 251
            @Override
253 252
            public void onShow(ShowEvent showEvent) {
......
303 302
        appearanceOptionsGroupPanel.setHeading("SUBTITLE");
304 303
        appearanceOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
305 304
        appearanceOptionsGroupPanel.add(appearanceOptionsForm);
306
        appearanceOptionsGroupPanel.setIcon(IconType.PLUS);
307
        appearanceOptionsGroupPanel.setDefaultOpen(false);
305
        appearanceOptionsGroupPanel.setIcon(IconType.MINUS);
306
        appearanceOptionsGroupPanel.setDefaultOpen(true);
308 307
        appearanceOptionsGroupPanel.addShowHandler(new ShowHandler() {
309 308
            @Override
310 309
            public void onShow(ShowEvent showEvent) {
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/leftColumn/OptionsWidget.java
3 3
import java.util.ArrayList;
4 4

  
5 5
import com.github.gwtbootstrap.client.ui.AccordionGroup;
6
import com.github.gwtbootstrap.client.ui.Button;
6 7
import com.github.gwtbootstrap.client.ui.CheckBox;
7 8
import com.github.gwtbootstrap.client.ui.Form;
8 9
import com.github.gwtbootstrap.client.ui.Image;
9 10
import com.github.gwtbootstrap.client.ui.Tab;
10 11
import com.github.gwtbootstrap.client.ui.TabPanel;
11 12
import com.github.gwtbootstrap.client.ui.TextBox;
13
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
12 14
import com.github.gwtbootstrap.client.ui.constants.FormType;
13 15
import com.github.gwtbootstrap.client.ui.constants.IconType;
14 16
import com.github.gwtbootstrap.client.ui.event.HideEvent;
......
19 21
import com.google.gwt.event.dom.client.ChangeHandler;
20 22
import com.google.gwt.event.dom.client.ClickEvent;
21 23
import com.google.gwt.event.dom.client.ClickHandler;
24
import com.google.gwt.event.dom.client.LoadEvent;
25
import com.google.gwt.event.dom.client.LoadHandler;
26
import com.google.gwt.http.client.URL;
27
import com.google.gwt.user.client.Window;
22 28
import com.google.gwt.user.client.ui.FlowPanel;
23 29
import com.google.gwt.user.client.ui.RootPanel;
24 30
import com.google.gwt.user.client.ui.Widget;
......
45 51
	private boolean isFromLoad;
46 52
	private final ArrayList<DataserieWidget> overallList = new ArrayList<DataserieWidget>();
47 53
	private AppearancePanel apperancePanel = new AppearancePanel();
54
	private ArrayList<FiltersPanel> filtersPanels = new ArrayList<FiltersPanel>();
55
	private final Button applyChangesGeneral = new Button();
56
	private final Button applyChangesTitles = new Button();
48 57
	
49 58
	public interface AddingDataseriesListener{
50 59
		public void onEvent(int numberOfColumn);
......
62 71
		designGeneralTab();
63 72
		designMainTabPanel();
64 73

  
65
		if(!isFromLoad)
66
			loadPresets();
74
		//if(!isFromLoad)
75
			//loadPresets();
67 76
	}
68 77
	
69 78
	public void designMainTabPanel(){
......
72 81
		
73 82
		
74 83
		appearanceTab.setHeading("Appearance");
75
		dataSeriesTab.setHeading("Dataseries");
84
		dataSeriesTab.setHeading("Add dataseries");
76 85
        dataSeriesTab.asWidget().addStyleName("folderTab");
77 86

  
78
		Image addDataserie = new Image("https://live.amcharts.com/static/img/icons/circle_plus.png");
87
		final Image addDataserie = new Image("https://live.amcharts.com/static/img/icons/circle_plus.png");
79 88
		addDataserie.addStyleName("add-serie-icon");
80 89
		
81 90
		dataSeriesTab.addDecorate(addDataserie);
91
		addDataserie.addStyleName("flashing-button");
82 92
		
83
		
84 93
		addDataserie.addClickHandler(new ClickHandler() {
85 94
			
86 95
			@Override
87 96
			public void onClick(ClickEvent arg0) {
88 97
				
89 98
					arg0.preventDefault();
99
					addDataserie.removeStyleName("flashing-button");
100
					DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,false,dataSeriesTab,true,apperancePanel,optionSelected,filtersPanels);
101
					overallList.add(temp);
90 102
					
91
					DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,false,dataSeriesTab,false,apperancePanel,optionSelected);
92
					overallList.add(temp);
93
				
103
					mainTabPanel.clear();
104
					
105
					mainTabPanel.add(dataSeriesTab);
106
					for(int i=0;i<overallList.size();i++){
107
						mainTabPanel.add(overallList.get(i).getSingleColumn());
108
						if(i==overallList.size()-1){
109
							mainTabPanel.selectTab(1+i);
110
						}
111
					}
112
					mainTabPanel.add(appearanceTab);
113
					mainTabPanel.add(generalTab);
114
					
115
					
94 116
					apperancePanel.addAppearanceForDataserie(totalColumns);
95 117
					
96 118
					DeleteListener deleteListener = new DeleteListener() {
......
98 120
						@Override
99 121
						public void onEvent(int numberOfDeletedColumn) {
100 122
							overallList.remove(numberOfDeletedColumn);
123
							mainTabPanel.clear();
124
							mainTabPanel.add(dataSeriesTab);
125
							for(int i=0;i<overallList.size();i++){
126
								mainTabPanel.add(overallList.get(i).getSingleColumn());
127
								if(i==overallList.size()-1){
128
									
129
									mainTabPanel.selectTab(1+i);
130
								}
131
							}
132
							mainTabPanel.add(appearanceTab);
133
							mainTabPanel.add(generalTab);
101 134
							apperancePanel.deleteAppearanceOfDataseries(numberOfDeletedColumn);
102
							
103 135
							for(int i=numberOfDeletedColumn;i<overallList.size();i++){
104 136
								overallList.get(i).setNumberOfCurrentColumn(overallList.get(i).getNumberOfCurrentColumn()-1);
105 137
							}
......
109 141
					overallList.get(specialColumnCounter).setDeleteListener(deleteListener);
110 142
					totalColumns++;
111 143
					specialColumnCounter++;
112
					Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
144
//					Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
113 145
				}
114 146
		});
115 147
		
......
127 159
		});
128 160
		
129 161
		generalTab.setHeading("General options");
162
		
163
		mainTabPanel.add(dataSeriesTab);
130 164
		mainTabPanel.add(appearanceTab);
131 165
		mainTabPanel.add(generalTab);
132
		mainTabPanel.add(dataSeriesTab);
133 166
		
134 167
		if(isFromLoad){
135 168
			totalColumns=0;
......
137 170
			for(int i=0;i<ValuesOfFields.getInstance().getColumnsDataList().size();i++){
138 171

  
139 172
				specialColumnCounter = i;
140
				DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,true,dataSeriesTab,false,apperancePanel,optionSelected);
173
				DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,true,dataSeriesTab,false,apperancePanel,optionSelected,filtersPanels);
141 174
				overallList.add(temp);
142 175

  
143 176
				apperancePanel.addAppearanceForDataserie(totalColumns);
......
147 180
					@Override
148 181
					public void onEvent(int numberOfDeletedColumn) {
149 182
						overallList.remove(numberOfDeletedColumn);
183
						mainTabPanel.clear();
184
						mainTabPanel.add(dataSeriesTab);
185
						for(int i=0;i<overallList.size();i++){
186
							mainTabPanel.add(overallList.get(i).getSingleColumn());
187
							if(i==overallList.size()-1){
188
								mainTabPanel.selectTab(1+i);
189
							}
190
						}
191
						mainTabPanel.add(appearanceTab);
192
						mainTabPanel.add(generalTab);
150 193
						apperancePanel.deleteAppearanceOfDataseries(numberOfDeletedColumn);
151
						
152 194
						for(int i=numberOfDeletedColumn;i<overallList.size();i++){
153 195
							overallList.get(i).setNumberOfCurrentColumn(overallList.get(i).getNumberOfCurrentColumn()-1);
154 196
						}
......
176 218
	public void designGeneralTab(){
177 219
		
178 220
		FlowPanel masterPanel = new FlowPanel();
179

  
180
        Form generalOptionsForm = new Form();
221
		
222
		
223
		applyChangesGeneral.setText("Apply");
224
		applyChangesGeneral.addStyleName("applychanges");
225
		applyChangesGeneral.setType(ButtonType.PRIMARY);
226
		applyChangesGeneral.addClickHandler(new ClickHandler() {
227
			
228
			@Override
229
			public void onClick(ClickEvent event) {
230
				// TODO Auto-generated method stub
231
				applyChangesGeneral.setEnabled(false);
232
				applyChangesGeneral.removeStyleName("flashing-button-apply");
233
				Generate.getInstance().getTheme1().addLoadHandler(new LoadHandler() {
234
					
235
					@Override
236
					public void onLoad(LoadEvent event) {
237
						applyChangesGeneral.setEnabled(true);
238
					}
239
				});
240
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
241
			}
242
		});
243
		
244
		
245
		applyChangesTitles.setText("Apply");
246
		applyChangesTitles.addStyleName("applychanges");
247
		applyChangesTitles.setType(ButtonType.PRIMARY);
248
		applyChangesTitles.addClickHandler(new ClickHandler() {
249
			
250
			@Override
251
			public void onClick(ClickEvent event) {
252
				// TODO Auto-generated method stub
253
				applyChangesTitles.setEnabled(false);
254
				applyChangesTitles.removeStyleName("flashing-button-apply");
255
				Generate.getInstance().getTheme1().addLoadHandler(new LoadHandler() {
256
					
257
					@Override
258
					public void onLoad(LoadEvent event) {
259
						applyChangesTitles.setEnabled(true);
260
					}
261
				});
262
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
263
			}
264
		});
265
		
266
		
267
		Form generalOptionsForm = new Form();
181 268
        generalOptionsForm.setType(FormType.HORIZONTAL);
182 269

  
183 270
        final TextBox numberOfResults = new TextBox();
......
192 279
				else
193 280
					ValuesOfFields.getInstance().setNumberOfResults(30);
194 281
				
195
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
282
//				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
283
				applyChangesGeneral.addStyleName("flashing-button-apply");
196 284
			}
197 285
		});
198 286
       
......
211 299
				}else{
212 300
					ValuesOfFields.getInstance().setCumulative(false);
213 301
				}
214
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
302
//				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
303
				applyChangesGeneral.addStyleName("flashing-button-apply");
215 304
			}
216 305
		});
217 306
        
......
225 314
			@Override
226 315
			public void onChange(ChangeEvent event) {
227 316
				ValuesOfFields.getInstance().setRotation(Integer.parseInt(rotateTextBox.getText()));
228
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
317
//				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
318

  
319
				applyChangesGeneral.addStyleName("flashing-button-apply");
229 320
			}
230 321
		});
231 322

  
......
237 328
			@Override
238 329
			public void onChange(ChangeEvent event) {
239 330
				ValuesOfFields.getInstance().setUseSteps(Integer.parseInt(useStepsTextBox.getText()));
240
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
331
//				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
332
				applyChangesGeneral.addStyleName("flashing-button-apply");
241 333
			}
242 334
		});
243 335

  
......
247 339
        generalOptionsGroupPanel.setHeading("GENERAL OPTIONS");
248 340
        generalOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
249 341
        generalOptionsGroupPanel.add(generalOptionsForm);
342
        generalOptionsGroupPanel.add(applyChangesGeneral);
250 343
        generalOptionsGroupPanel.setIcon(IconType.MINUS);
251 344
        generalOptionsGroupPanel.setDefaultOpen(true);
252 345
        generalOptionsGroupPanel.addShowHandler(new ShowHandler() {
......
275 368
            @Override
276 369
            public void onChange(ChangeEvent arg0) {
277 370
                // TODO Auto-generated method stub
278
            	ValuesOfFields.getInstance().setTitle(titleTextBox.getText().replaceAll("\"", "\\\\\""));
279
                Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
371
            	ValuesOfFields.getInstance().setTitle(URL.encode(titleTextBox.getText()));
372
            	
373
				applyChangesTitles.addStyleName("flashing-button-apply");
374
//                Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
280 375
            }
281 376
        });
282 377
        headersForm.add(new FormFieldSet("Chart title", titleTextBox));
......
287 382
            @Override
288 383
            public void onChange(ChangeEvent arg0) {
289 384
            	ValuesOfFields.getInstance().setSubtitle(subtitleTextBox.getText().replaceAll("\"", "\\\\\""));
290
            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
385
            	applyChangesTitles.addStyleName("flashing-button-apply");
386
//            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
291 387
            }
292 388
        });
293 389
        headersForm.add(new FormFieldSet("Chart subtitle", subtitleTextBox));
......
299 395
            public void onChange(ChangeEvent arg0) {
300 396
                // TODO Auto-generated method stub
301 397
            	ValuesOfFields.getInstance().setXaxis(xaxisTextBox.getText().replaceAll("\"", "\\\\\""));
302
            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
398
            	applyChangesTitles.addStyleName("flashing-button-apply");
399
//            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
303 400
            }
304 401
        });
305 402
        headersForm.add(new FormFieldSet("Naming x-axis", xaxisTextBox));
......
311 408
            public void onChange(ChangeEvent arg0) {
312 409
                // TODO Auto-generated method stub
313 410
            	ValuesOfFields.getInstance().setYaxis(yaxisTextBox.getText().replaceAll("\"", "\\\\\""));
314
            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
411
            	applyChangesTitles.addStyleName("flashing-button-apply");
412
//            	Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
315 413
            }
316 414
        });
317 415
        headersForm.add(new FormFieldSet("Naming y-axis", yaxisTextBox));
......
321 419
        titlesGroupPanel.setHeading("TITLE OPTIONS");
322 420
        titlesGroupPanel.getHeading().addStyleName("accordionHeading");
323 421
        titlesGroupPanel.add(headersForm);
324
        titlesGroupPanel.setIcon(IconType.PLUS);
422
        titlesGroupPanel.add(applyChangesTitles);
423
        titlesGroupPanel.setIcon(IconType.MINUS);
424
        titlesGroupPanel.setDefaultOpen(true);
325 425
        titlesGroupPanel.addShowHandler(new ShowHandler() {
326 426
            @Override
327 427
            public void onShow(ShowEvent showEvent) {
......
336 436
        });
337 437

  
338 438
        masterPanel.add(titlesGroupPanel);
339

  
340 439
        
341 440
        if(isFromLoad){
342 441
        	if(!ValuesOfFields.getInstance().getTitle().isEmpty()){
......
372 471
		else
373 472
			size=2;
374 473
		
375
		for(int i=0;i<size;i++){
376
			DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,false,dataSeriesTab,true,apperancePanel,optionSelected);
474
		for(int i=0;i<1;i++){
475
			DataserieWidget temp = new DataserieWidget(mainTabPanel,schemaFromServer,totalColumns,specialColumnCounter,deleteImageList,listBoxes,false,dataSeriesTab,true,apperancePanel,optionSelected,filtersPanels);
377 476

  
378 477
			overallList.add(temp);
379 478
			apperancePanel.addAppearanceForDataserie(totalColumns);
modules/uoa-stats-config/branches/json/src/main/java/eu/dnetlib/client/leftColumn/DataserieWidget.java
7 7
import com.github.gwtbootstrap.client.ui.Form;
8 8
import com.github.gwtbootstrap.client.ui.Image;
9 9
import com.github.gwtbootstrap.client.ui.ListBox;
10
import com.github.gwtbootstrap.client.ui.RadioButton;
10 11
import com.github.gwtbootstrap.client.ui.Tab;
11 12
import com.github.gwtbootstrap.client.ui.TabPanel;
12 13
import com.github.gwtbootstrap.client.ui.TextBox;
......
14 15
import com.github.gwtbootstrap.client.ui.constants.AlternateSize;
15 16
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
16 17
import com.github.gwtbootstrap.client.ui.constants.FormType;
18
import com.github.gwtbootstrap.client.ui.constants.IconSize;
17 19
import com.github.gwtbootstrap.client.ui.constants.IconType;
18 20
import com.github.gwtbootstrap.client.ui.event.HideEvent;
19 21
import com.github.gwtbootstrap.client.ui.event.HideHandler;
......
21 23
import com.github.gwtbootstrap.client.ui.event.ShowHandler;
22 24
import com.google.gwt.dom.client.Element;
23 25
import com.google.gwt.dom.client.Style.Overflow;
26
import com.google.gwt.dom.client.Style.Unit;
24 27
import com.google.gwt.event.dom.client.BlurEvent;
25 28
import com.google.gwt.event.dom.client.BlurHandler;
26 29
import com.google.gwt.event.dom.client.ChangeEvent;
......
32 35
import com.google.gwt.event.dom.client.KeyCodes;
33 36
import com.google.gwt.event.dom.client.KeyDownEvent;
34 37
import com.google.gwt.event.dom.client.KeyDownHandler;
38
import com.google.gwt.event.dom.client.LoadEvent;
39
import com.google.gwt.event.dom.client.LoadHandler;
35 40
import com.google.gwt.event.logical.shared.SelectionEvent;
36 41
import com.google.gwt.event.logical.shared.SelectionHandler;
37 42
import com.google.gwt.user.client.Timer;
38 43
import com.google.gwt.user.client.Window;
39 44
import com.google.gwt.user.client.ui.FlexTable;
40 45
import com.google.gwt.user.client.ui.FlowPanel;
46
import com.google.gwt.user.client.ui.HorizontalPanel;
41 47
import com.google.gwt.user.client.ui.Tree;
42 48
import com.google.gwt.user.client.ui.TreeItem;
43 49
import com.google.gwt.user.client.ui.Widget;
......
51 57
import eu.dnetlib.shared.ValuesOfFields;
52 58
import eu.dnetlib.shared.ValuesOfFields.Data;
53 59

  
54
public class DataserieWidget extends Widget{
60
public class DataserieWidget extends Widget {
55 61

  
56 62
	private final FlowPanel masterPanel = new FlowPanel();
57 63
	private int totalColumns;
58 64
	private int specialColumnCounter;
59 65
	private TabPanel mainTabPanel;
60 66
	private ArrayList<Image> deleteImageList = new ArrayList<Image>();
61
	private FlexTable filtersTable = new FlexTable();
62 67
	private SchemaAnswer schemaFromServer;
63 68
	private ArrayList<DropdownListWidget> listBoxes = new ArrayList<DropdownListWidget>();
64 69
	private boolean isFromLoad;
......
69 74
	private boolean loadPresets;
70 75
	private ListBox tableListBox = new ListBox();
71 76
	private int numberOfCurrentColumn;
72
	private DropdownListWidget typeOfChart = new DropdownListWidget();
77
	private DropdownListWidget typeOfChart = new DropdownListWidget(true);
73 78
	private Timer timer;
74 79
	private final ListBox aggregateListBox = new ListBox();
75 80
	private AppearancePanel appearancePanel;
76 81
	private int comingFromSetState = 0;
77 82
	private boolean prevOpenState = true;
83
	private final IconAnchor edit = new IconAnchor();
84
	private final DropdownListWidget splitBy = new DropdownListWidget();
85
	private ArrayList<FiltersPanel> filtersPanels = new ArrayList<FiltersPanel>();
86
	private final Button applyChanges = new Button();
78 87
	
79
	
80
	
88
	private final Image enabled = new Image(
89
			"https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/checked_checkbox.png");
90
	private Image deleteImage = new Image(
91
			"https://live.amcharts.com/static/img/icons/circle_x.png");
92
	private final AccordionGroup filtersGroupPanel = new AccordionGroup();
93

  
81 94
	public int getNumberOfCurrentColumn() {
82 95
		return numberOfCurrentColumn;
83 96
	}
97

  
84 98
	public void setNumberOfCurrentColumn(int numberOfCurrentColumn) {
85 99
		this.numberOfCurrentColumn = numberOfCurrentColumn;
86 100
	}
87 101

  
88
	public interface DeleteListener{
102
	
103
	public Tab getSingleColumn() {
104
		return singleColumn;
105
	}
106

  
107

  
108
	public interface DeleteListener {
89 109
		public void onEvent(int numberOfColumn);
90 110
	}
111

  
91 112
	private DeleteListener deleteListener;
92
	public void setDeleteListener(DeleteListener deleteListener){
93
		this.deleteListener= deleteListener;
113

  
114
	public void setDeleteListener(DeleteListener deleteListener) {
115
		this.deleteListener = deleteListener;
94 116
	}
95
	
96
	
97 117

  
98
	public DataserieWidget(TabPanel mainTabPanel,SchemaAnswer schemaFroAnswer,final int totalColumns ,final int specialColumnCounter,ArrayList<Image> deleteImageList, ArrayList<DropdownListWidget> listboxes,boolean isFromLoad,Tab dataSeriesTab, boolean loadPresets,AppearancePanel apperancePanel,int optionsSelected){
99
		
118
	public DataserieWidget(TabPanel mainTabPanel, SchemaAnswer schemaFroAnswer,
119
			final int totalColumns, final int specialColumnCounter,
120
			ArrayList<Image> deleteImageList,
121
			ArrayList<DropdownListWidget> listboxes, boolean isFromLoad,
122
			Tab dataSeriesTab, boolean loadPresets,
123
			AppearancePanel apperancePanel, int optionsSelected,
124
			ArrayList<FiltersPanel> filtersPanels) {
125

  
126
		this.filtersPanels = filtersPanels;
100 127
		this.mainTabPanel = mainTabPanel;
101 128
		this.schemaFromServer = schemaFroAnswer;
102 129
		this.totalColumns = totalColumns;
103
		
104
		if(!isFromLoad)
130

  
131
		if (!isFromLoad)
105 132
			this.specialColumnCounter = ValuesOfFields.getInstance().getColumnsDataList().size();
106 133
		else
107 134
			this.specialColumnCounter = specialColumnCounter;
108
		
109
		
110
		
135

  
111 136
		this.deleteImageList = deleteImageList;
112 137
		this.listBoxes = listboxes;
113 138
		this.isFromLoad = isFromLoad;
114 139
		this.dataSeriesTab = dataSeriesTab;
115 140
		this.loadPresets = loadPresets;
116
		this.numberOfCurrentColumn=specialColumnCounter;
141
		this.numberOfCurrentColumn = specialColumnCounter;
142

  
117 143
		ChangingNameListener changingNameListener = new ChangingNameListener() {
118
			
144

  
119 145
			@Override
120 146
			public void onEvent(String name) {
121
				if(name.equals("")){
122
					generalOptionsGroupPanel.setHeading("GENERAL OPTIONS FOR DATASERIES "+ (totalColumns+1));
123
					singleColumn.setHeading("Dataseries " + (totalColumns+1));
124
				}else{
125
					generalOptionsGroupPanel.setHeading("GENERAL OPTIONS FOR DATASERIES \""+name+"\"");
147
				if (name.equals("")) {
148
					generalOptionsGroupPanel
149
							.setHeading("DATASERIES untitled");
150
					singleColumn.setHeading("Dataseries untitled");
151
				} else {
152
					generalOptionsGroupPanel
153
							.setHeading("DATASERIES \""
154
									+ name + "\"");
126 155
					singleColumn.setHeading(name);
127 156
				}
128 157
			}
129 158
		};
130 159
		apperancePanel.setChaningNameListenr(changingNameListener);
131 160
		this.appearancePanel = apperancePanel;
132
		
161

  
133 162
		addDataserie();
134 163
		this.isFromLoad = false;
135
		if(loadPresets){
164
		if (loadPresets && (specialColumnCounter == 0 || specialColumnCounter == 1)) {
136 165
			loadPresetChartTypes(optionsSelected);
137 166
		}
138 167
	}
139
	
140 168

  
141
	public void addDataserie(){
142
		
143
		if(!isFromLoad){
169
	public void addDataserie() {
170

  
171
		if (!isFromLoad) {
144 172
			ValuesOfFields.getInstance().getColumnsDataList().add(new Data());
145 173
		}
146
		singleColumn.setHeading("Dataseries "+(totalColumns+1));
147
		
174
		singleColumn.setHeading("untitled");
175

  
148 176
		masterPanel.addStyleName("dataseries-content");
177

  
149 178
		
150
		mainTabPanel.add(singleColumn);
151 179
		final TextBox renameTextBox = new TextBox();
152 180
		renameTextBox.setAlternateSize(AlternateSize.MEDIUM);
153 181
		singleColumn.addDecorate(renameTextBox);
154 182
		renameTextBox.setVisible(false);
155 183
		renameTextBox.setHeight("15px");
156
		
184

  
157 185
		renameTextBox.addKeyDownHandler(new KeyDownHandler() {
158
			
186

  
159 187
			@Override
160 188
			public void onKeyDown(KeyDownEvent event) {
161
				if(event.getNativeKeyCode()==KeyCodes.KEY_ENTER)
189
				if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
162 190
					renameTextBox.setFocus(false);
163 191
			}
164 192
		});
165
		
193

  
166 194
		renameTextBox.addBlurHandler(new BlurHandler() {
167
			
195

  
168 196
			@Override
169 197
			public void onBlur(BlurEvent event) {
170
				if(renameTextBox.getText().trim().length()>0){
198
				if (renameTextBox.getText().trim().length() > 0) {
171 199
					singleColumn.setHeading(renameTextBox.getText());
172
					generalOptionsGroupPanel.setHeading("GENERAL OPTIONS FOR \""+singleColumn.getHeading()+"\"");
173
					ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setXaxisTitle(singleColumn.getHeading());
174
					Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
175
					
176
				}else{//if only contains whitespaces
177
					singleColumn.setHeading("Dataseries " + (totalColumns+1));
178
					generalOptionsGroupPanel.setHeading("GENERAL OPTIONS FOR DATASERIES"+ (totalColumns+1));
200
					generalOptionsGroupPanel.setHeading("DATASERIES \"" + singleColumn.getHeading() + "\"");
201
					ValuesOfFields.getInstance().getColumnsDataList()
202
							.get(numberOfCurrentColumn)
203
							.setXaxisTitle(singleColumn.getHeading());
204
					//Generate.getInstance().generateURLs(
205
					//		ValuesOfFields.getInstance(), 1);
206
					applyChanges.addStyleName("flashing-button-apply");
207

  
208
				} else {// if only contains whitespaces
209
					singleColumn.setHeading("untitled");
210
					generalOptionsGroupPanel
211
							.setHeading("DATASERIES untitled");
179 212
				}
180
				appearancePanel.getAppearancePanels().get(numberOfCurrentColumn).setHeading("APPEARANCE FOR" + singleColumn.getHeading());
213
				appearancePanel
214
						.getAppearancePanels()
215
						.get(numberOfCurrentColumn)
216
						.setHeading(
217
								"APPEARANCE FOR \"untitled\"" );
181 218

  
182 219
				renameTextBox.setVisible(false);
220
				edit.setVisible(true);
221
				enabled.setVisible(true);
222
				deleteImage.setVisible(true);
183 223
			}
184
			
224

  
185 225
		});
186
		
187
		
226

  
188 227
		singleColumn.asWidget().addStyleName("dataserie-tab");
189 228
		singleColumn.asWidget().addDomHandler(new DoubleClickHandler() {
190
			
229

  
191 230
			@Override
192 231
			public void onDoubleClick(DoubleClickEvent event) {
193
				
194
				
232

  
195 233
				renameTextBox.setText(singleColumn.getHeading());
196 234
				singleColumn.setHeading("");
197
				renameTextBox.setSelectionRange(0, renameTextBox.getText().length());
235
				renameTextBox.setSelectionRange(0, renameTextBox.getText()
236
						.length());
198 237
				renameTextBox.setVisible(true);
199 238
				renameTextBox.setFocus(true);
239
				edit.setVisible(false);
240
				enabled.setVisible(false);
241
				deleteImage.setVisible(false);
200 242
			}
201 243
		}, DoubleClickEvent.getType());
202
		
203
	    final Image enabled = new Image("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/checked_checkbox.png");
204
		
244

  
205 245
		enabled.addStyleName("dataserie-checkbox");
206 246

  
207 247
		enabled.addClickHandler(new ClickHandler() {
208
			
248

  
209 249
			@Override
210 250
			public void onClick(ClickEvent event) {
211
				if(enabled.getUrl().equals("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/unchecked_checkbox.png")){
251
				if (enabled
252
						.getUrl()
253
						.equals("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/unchecked_checkbox.png")) {
212 254
					enabled.setUrl("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/checked_checkbox.png");
213
					ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setEnabled(true);
214
				}else{
255
					ValuesOfFields.getInstance().getColumnsDataList()
256
							.get(numberOfCurrentColumn).setEnabled(true);
257
				} else {
215 258
					enabled.setUrl("https://cdn2.iconfinder.com/data/icons/windows-8-metro-style/512/unchecked_checkbox.png");
216
					ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setEnabled(false);
259
					ValuesOfFields.getInstance().getColumnsDataList()
260
							.get(numberOfCurrentColumn).setEnabled(false);
217 261
				}
218
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
262
				Generate.getInstance().generateURLs(
263
						ValuesOfFields.getInstance(), 1);
264
				//applyChanges.addStyleName("flashing-button-apply");
219 265
			}
220 266
		});
221
		
222
		Image deleteImage = new Image("https://live.amcharts.com/static/img/icons/circle_x.png");
267

  
268
		edit.setIcon(IconType.EDIT);
269
		edit.setIconSize(IconSize.DEFAULT);
270
		edit.addStyleName("editname");
271
		edit.addClickHandler(new ClickHandler() {
272
			@Override
273
			public void onClick(ClickEvent clickEvent) {
274

  
275
				renameTextBox.setText(singleColumn.getHeading());
276
				singleColumn.setHeading("");
277
				renameTextBox.setSelectionRange(0, renameTextBox.getText()
278
						.length());
279
				renameTextBox.setVisible(true);
280
				renameTextBox.setFocus(true);
281
				edit.setVisible(false);
282
				enabled.setVisible(false);
283
				deleteImage.setVisible(false);
284

  
285
			}
286
		});
287

  
223 288
		deleteImage.addStyleName("delete-icon");
224 289

  
225 290
		deleteImage.addClickHandler(new ClickHandler() {
226
			
291

  
227 292
			@Override
228 293
			public void onClick(ClickEvent arg0) {
229 294
				// TODO Auto-generated method stub
295
			
230 296
				int index = deleteImageList.indexOf(arg0.getSource());
231 297
				deleteImageList.remove(index);
232 298
				listBoxes.remove(index);
233
				mainTabPanel.remove(index+3);
234 299
				ValuesOfFields.getInstance().getColumnsDataList().remove(index);
235
				if(deleteListener!=null){
300
				if (deleteListener != null) {
236 301
					deleteListener.onEvent(numberOfCurrentColumn);
237 302
				}
238
				
239
			
240
				if(specialColumnCounter==1){
241
					bringAllOfCertainTable(listBoxes.get(0),false);
242
				}else if(specialColumnCounter>1){
303
				numberOfCurrentColumn--;
304
				if (specialColumnCounter == 1) {
305
					bringAllOfCertainTable(listBoxes.get(0), false);
306
				} else if (specialColumnCounter > 1) {
243 307
					bringSameOriginOptions();
244 308
				}
245
				
246
				if(specialColumnCounter!=0){
247
					mainTabPanel.selectTab((index-1)+3);
248
				}
249 309

  
250
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
251 310

  
311
				Generate.getInstance().generateURLs(
312
						ValuesOfFields.getInstance(), 1);
313
				//applyChanges.addStyleName("flashing-button-apply");
314

  
252 315
			}
253 316
		});
254
		if(!isFromLoad)
255
			mainTabPanel.selectTab(specialColumnCounter+3);
256 317
		
257
		designOptionsForDataserie(singleColumn,totalColumns,specialColumnCounter);
258 318

  
319
		designOptionsForDataserie(singleColumn, totalColumns,
320
				specialColumnCounter);
321

  
259 322
		deleteImageList.add(deleteImage);
260 323
		singleColumn.addDecorate(deleteImage);
261 324
		singleColumn.asTabLink().add(enabled);
325
		singleColumn.asTabLink().add(edit);
262 326
	}
263
	
264
	public void designOptionsForDataserie(Tab whereToAttach,int certainColumn,final int numberOfCurrentColumn){
265 327

  
328
	public void designOptionsForDataserie(Tab whereToAttach, int certainColumn,
329
			final int numberOfCurrentColumn) {
330

  
331
		FlowPanel overallPanel = new FlowPanel();
332
		HorizontalPanel aggPanel = new HorizontalPanel();
333
		final RadioButton totalNumberRadio = new RadioButton("Total number");
334
		totalNumberRadio.setText("Total number");
335
		final RadioButton aggRadio = new RadioButton("");
336
		final DropdownListWidget y_axisListBox = new DropdownListWidget();
337

  
266 338
		
267 339

  
268
        Form generalOptionsForm = new Form();
269
        generalOptionsForm.setType(FormType.HORIZONTAL);
270
        
271
        designOptionsForTypeOfChart(typeOfChart);
340
		totalNumberRadio.addClickHandler(new ClickHandler() {
272 341

  
273
        final DropdownListWidget x_axisListBox = new DropdownListWidget();
274
        generalOptionsForm.add(new FormFieldSet("Type of chart",typeOfChart.asWidget()));
275
        generalOptionsForm.add(new FormFieldSet("Table", tableListBox));
276
        generalOptionsForm.add(new FormFieldSet("X axis", x_axisListBox.asWidget()));
277
        listBoxes.add(x_axisListBox);
278
        
279
        TreeListener treeListener = new TreeListener() {
280
			
281 342
			@Override
343
			public void onClick(ClickEvent event) {
344
				aggRadio.setValue(false);
345
				y_axisListBox.getListBox().setEnabled(false);
346
				aggregateListBox.setEnabled(false);
347
				ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setY_values("*");
348
				ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setTypeOf("count");
349
				ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setIndexOfTypeOf(0);
350
				applyChanges.addStyleName("flashing-button-apply");
351

  
352
			}
353
		});
354

  
355
		aggRadio.addClickHandler(new ClickHandler() {
356

  
357
			@Override
358
			public void onClick(ClickEvent event) {
359
				totalNumberRadio.setValue(false);
360
				y_axisListBox.getListBox().setEnabled(true);
361
				aggregateListBox.setEnabled(true);
362
			}
363
		});
364

  
365
				
366
		Form generalOptionsForm = new Form();
367
		generalOptionsForm.setType(FormType.HORIZONTAL);
368

  
369
		designOptionsForTypeOfChart(typeOfChart);
370

  
371
		final DropdownListWidget x_axisListBox = new DropdownListWidget();
372
		generalOptionsForm.add(new FormFieldSet("Type of chart", typeOfChart
373
				.asWidget()));
374
		generalOptionsForm.add(new FormFieldSet("Table", tableListBox));
375
		generalOptionsForm.add(new FormFieldSet("X axis", x_axisListBox
376
				.asWidget()));
377
		listBoxes.add(x_axisListBox);
378

  
379
		TreeListener treeListener = new TreeListener() {
380

  
381
			@Override
282 382
			public void onEvent() {
283 383
				filtersPanel.getInfoAlert().setVisible(false);
284 384
				filtersPanel.getAddNewFilter().setVisible(true);
285 385
			}
286 386
		};
287
		
387

  
288 388
		x_axisListBox.setTreeListener(treeListener);
289
        DropdownListWidget y_axisListBox = new DropdownListWidget();
290
        generalOptionsForm.add(new FormFieldSet("Y axis", y_axisListBox.asWidget()));
291
        
292
        
293
      
294
        aggregateListBox.addItem("avg of");
295
        aggregateListBox.addItem("count of");
296
        aggregateListBox.addItem("sum of");
297
        aggregateListBox.addItem("max of");
298
        aggregateListBox.addItem("min of");
299
        aggregateListBox.setSelectedIndex(1);
300
        generalOptionsForm.add(new FormFieldSet("Aggregate", aggregateListBox));
301
        aggregateListBox.addChangeHandler(new ChangeHandler() {
302 389

  
303
            @Override
304
            public void onChange(ChangeEvent arg0) {
305
                // TODO Auto-generated method stub
306
            	ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setTypeOf(aggregateListBox.getItemText(aggregateListBox.getSelectedIndex()));
307
            	ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setIndexOfTypeOf(aggregateListBox.getSelectedIndex());
308
                Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
309
            }
310
        });
390
		y_axisListBox.getListBox().setSize(2);
391
	
311 392

  
312
        ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setTypeOf(aggregateListBox.getItemText(1));
313
        ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setIndexOfTypeOf(1);
393
		aggPanel.add(aggRadio);
394
		aggPanel.add(aggregateListBox);
395
		aggPanel.add(y_axisListBox);
396
		// tempPanel.getElement().getStyle().setMarginLeft(-82.0, Unit.PX);
314 397

  
315
        
316
        final DropdownListWidget splitBy = new DropdownListWidget();
398
		overallPanel.add(totalNumberRadio);
399
		overallPanel.add(aggPanel);
317 400

  
318
        bringAllForSplitted(splitBy);
401
		FormFieldSet finalFieldSet = new FormFieldSet("", overallPanel);
402
		finalFieldSet.asWidget().getElement().getStyle().setMarginLeft(-76.0, Unit.PX);
403
		generalOptionsForm.add(finalFieldSet);
319 404

  
320
        
321
        if(isFromLoad){
322
        	splitBy.getListBox().addItem(ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).getSplitBy());
323
        	splitBy.getListBox().setSelectedIndex(0);
324
        }
325
        
326
        generalOptionsForm.add(new FormFieldSet("Split by", splitBy.asWidget()));
327
        splitBy.getMasterTree().addSelectionHandler(new SelectionHandler<TreeItem>() {
405
		aggregateListBox.setSize(2);
406
		aggregateListBox.addItem("avg of");
407
		aggregateListBox.addItem("count of");
408
		aggregateListBox.addItem("sum of");
409
		aggregateListBox.addItem("max of");
410
		aggregateListBox.addItem("min of");
411
		aggregateListBox.setSelectedIndex(1);
412
		// generalOptionsForm.add(new FormFieldSet("Aggregate",
413
		// aggregateListBox));
414
		aggregateListBox.addChangeHandler(new ChangeHandler() {
328 415

  
329 416
			@Override
330
			public void onSelection(SelectionEvent<TreeItem> event) {
331
				if(!event.getSelectedItem().getText().equals("none")){
332
					ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setSplitBy(event.getSelectedItem().getTitle().split(" ")[0]);
333
				}else{
334
					ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setSplitBy("");
335
				}
336
				
337
				
338
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(), 1);
417
			public void onChange(ChangeEvent arg0) {
418
				// TODO Auto-generated method stub
419
				ValuesOfFields
420
						.getInstance()
421
						.getColumnsDataList()
422
						.get(numberOfCurrentColumn)
423
						.setTypeOf(
424
								aggregateListBox.getItemText(aggregateListBox
425
										.getSelectedIndex()));
426
				ValuesOfFields.getInstance().getColumnsDataList()
427
						.get(numberOfCurrentColumn)
428
						.setIndexOfTypeOf(aggregateListBox.getSelectedIndex());
429
				//Generate.getInstance().generateURLs(
430
				//		ValuesOfFields.getInstance(), 1);
431
				applyChanges.addStyleName("flashing-button-apply");
339 432
			}
340 433
		});
341
        
342
        ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setDesignAs("column");
343
        ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setSplitBy("");
344 434

  
345
       
346
        generalOptionsGroupPanel.addStyleName("accordionPanel");
347
        generalOptionsGroupPanel.setId("accordionGeneral");
348
        generalOptionsGroupPanel.getElement().getStyle().setOverflow(Overflow.VISIBLE);
349
        generalOptionsGroupPanel.setHeading("GENERAL OPTIONS FOR DATASERIES " + (certainColumn+1));
350
        generalOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
351
        generalOptionsGroupPanel.add(generalOptionsForm);
352
        generalOptionsGroupPanel.setIcon(IconType.MINUS);
353
        generalOptionsGroupPanel.setDefaultOpen(true);
354
        generalOptionsGroupPanel.addShowHandler(new ShowHandler() {
355
            @Override
356
            public void onShow(ShowEvent showEvent) {
357
                generalOptionsGroupPanel.setIcon(IconType.MINUS);
358
                
359
                Timer timer = new Timer() {
360
					
435
		ValuesOfFields.getInstance().getColumnsDataList()
436
				.get(numberOfCurrentColumn)
437
				.setTypeOf(aggregateListBox.getItemText(1));
438
		ValuesOfFields.getInstance().getColumnsDataList()
439
				.get(numberOfCurrentColumn).setIndexOfTypeOf(1);
440

  
441
		bringAllForSplitted(splitBy);
442

  
443
		if (isFromLoad) {
444
			splitBy.getListBox().addItem(
445
					ValuesOfFields.getInstance().getColumnsDataList()
446
							.get(numberOfCurrentColumn).getSplitBy());
447
			splitBy.getListBox().setSelectedIndex(0);
448
		}
449

  
450
		generalOptionsForm
451
				.add(new FormFieldSet("Split by", splitBy.asWidget()));
452
		splitBy.getMasterTree().addSelectionHandler(
453
				new SelectionHandler<TreeItem>() {
454

  
361 455
					@Override
456
					public void onSelection(SelectionEvent<TreeItem> event) {
457
						String[] splitted = event.getSelectedItem()
458
								.getElement().getAttribute("value")
459
								.split(" type ");
460

  
461
						if (!event.getSelectedItem().getText().equals("none")) {
462
							ValuesOfFields.getInstance().getColumnsDataList()
463
									.get(numberOfCurrentColumn)
464
									.setSplitBy(splitted[0]);
465
						} else {
466
							ValuesOfFields.getInstance().getColumnsDataList()
467
									.get(numberOfCurrentColumn).setSplitBy("");
468
						}
469

  
470
					//	Generate.getInstance().generateURLs(
471
					//			ValuesOfFields.getInstance(), 1);
472
						applyChanges.addStyleName("flashing-button-apply");
473
					}
474
				});
475

  
476
		ValuesOfFields.getInstance().getColumnsDataList()
477
				.get(numberOfCurrentColumn).setDesignAs("column");
478
		ValuesOfFields.getInstance().getColumnsDataList()
479
				.get(numberOfCurrentColumn).setSplitBy("");
480

  
481
		generalOptionsGroupPanel.addStyleName("accordionPanel");
482
		generalOptionsGroupPanel.setId("accordionGeneral");
483
		generalOptionsGroupPanel.getElement().getStyle()
484
				.setOverflow(Overflow.VISIBLE);
485
		generalOptionsGroupPanel.setHeading("DATASERIES untitled");
486
		generalOptionsGroupPanel.getHeading().addStyleName("accordionHeading");
487
		generalOptionsGroupPanel.add(generalOptionsForm);
488
		generalOptionsGroupPanel.setIcon(IconType.MINUS);
489
		generalOptionsGroupPanel.setDefaultOpen(true);
490
		generalOptionsGroupPanel.addShowHandler(new ShowHandler() {
491
			@Override
492
			public void onShow(ShowEvent showEvent) {
493
				generalOptionsGroupPanel.setIcon(IconType.MINUS);
494

  
495
				Timer timer = new Timer() {
496

  
497
					@Override
362 498
					public void run() {
363
						generalOptionsGroupPanel.getElement().getStyle().setOverflow(Overflow.VISIBLE);
499
						generalOptionsGroupPanel.getElement().getStyle()
500
								.setOverflow(Overflow.VISIBLE);
364 501
					}
365 502
				};
366 503
				timer.schedule(300);
367
            }
368
        });
369
        generalOptionsGroupPanel.addHideHandler(new HideHandler() {
370
            @Override
371
            public void onHide(HideEvent hideEvent) {
372
                generalOptionsGroupPanel.setIcon(IconType.PLUS);
373
                generalOptionsGroupPanel.getElement().getStyle().setOverflow(Overflow.HIDDEN);
374
            }
375
        });
376
       
377
        masterPanel.add(generalOptionsGroupPanel);
504
			}
505
		});
506
		generalOptionsGroupPanel.addHideHandler(new HideHandler() {
507
			@Override
508
			public void onHide(HideEvent hideEvent) {
509
				generalOptionsGroupPanel.setIcon(IconType.PLUS);
510
				generalOptionsGroupPanel.getElement().getStyle()
511
						.setOverflow(Overflow.HIDDEN);
512
			}
513
		});
378 514

  
379
       
380
        final IconAnchor addNewFilter = new IconAnchor();
381
        addNewFilter.setText("Add new Filter");
382
        addNewFilter.setIcon(IconType.PLUS);
383
        addNewFilter.addClickHandler(new ClickHandler() {
384
            @Override
385
            public void onClick(ClickEvent clickEvent) {
386
                filtersTable.clear();
387
                filtersTable.removeAllRows();
388
                filtersTable.getRowFormatter().addStyleName(0, "tables-header");
389
                filtersTable.setText(0, 0, "Field");
390
                filtersTable.setText(0, 1, "Value");
391
                filtersTable.setText(0, 2, "Remove");
392
                filtersTable.setText(0, 3, "Edit");
393
              
394
            }
395
        });
396
        
397
        
398
        final AccordionGroup filtersGroupPanel = new AccordionGroup();
399
        filtersGroupPanel.addStyleName("accordionPanel");
400
        Element element = (Element)filtersGroupPanel.getElement().getChild(1);
515
		masterPanel.add(generalOptionsGroupPanel);
516

  
517
		
518

  
519
		filtersGroupPanel.addStyleName("accordionPanel");
520
		Element element = (Element) filtersGroupPanel.getElement().getChild(1);
401 521
		element.getStyle().setOverflow(Overflow.AUTO);
402
        filtersGroupPanel.setHeading("FILTERS");
403
        filtersGroupPanel.getHeading().addStyleName("accordionHeading");
522
		filtersGroupPanel.setHeading("FILTERS");
523
		filtersGroupPanel.getHeading().addStyleName("accordionHeading");
404 524

  
405
        filtersPanel = new FiltersPanel(schemaFromServer,numberOfCurrentColumn,isFromLoad);
525
		filtersPanel = new FiltersPanel(schemaFromServer,
526
				numberOfCurrentColumn, isFromLoad, filtersPanels);
527
		filtersPanels.add(filtersPanel);
406 528

  
407
        filtersGroupPanel.add(filtersPanel.asWidget());
408
        filtersGroupPanel.setIcon(IconType.PLUS);
409
        filtersGroupPanel.addShowHandler(new ShowHandler() {
410
            @Override
411
            public void onShow(ShowEvent showEvent) {
412
                filtersGroupPanel.setIcon(IconType.MINUS);
413
                Timer timer = new Timer() {
414
					
529
		filtersGroupPanel.add(filtersPanel.asWidget());
530
		filtersGroupPanel.setIcon(IconType.PLUS);
531
		filtersGroupPanel.addShowHandler(new ShowHandler() {
532
			@Override
533
			public void onShow(ShowEvent showEvent) {
534
				filtersGroupPanel.setIcon(IconType.MINUS);
535
				Timer timer = new Timer() {
536

  
415 537
					@Override
416 538
					public void run() {
417
						//filtersGroupPanel.getElement().getStyle().setOverflow(Overflow.VISIBLE);
418
						Element element = (Element)filtersGroupPanel.getElement().getChild(1);
539
						// filtersGroupPanel.getElement().getStyle().setOverflow(Overflow.VISIBLE);
540
						Element element = (Element) filtersGroupPanel
541
								.getElement().getChild(1);
419 542
						element.getStyle().setOverflow(Overflow.VISIBLE);
420 543
					}
421 544
				};
422 545
				timer.schedule(300);
423
            }
424
        });
425
        filtersGroupPanel.addHideHandler(new HideHandler() {
426
            @Override
427
            public void onHide(HideEvent hideEvent) {
428
                filtersGroupPanel.setIcon(IconType.PLUS);
429
                Element element = (Element)filtersGroupPanel.getElement().getChild(1);
546
			}
547
		});
548
		filtersGroupPanel.addHideHandler(new HideHandler() {
549
			@Override
550
			public void onHide(HideEvent hideEvent) {
551
				filtersGroupPanel.setIcon(IconType.PLUS);
552
				Element element = (Element) filtersGroupPanel.getElement()
553
						.getChild(1);
430 554
				element.getStyle().setOverflow(Overflow.AUTO);
431
            }
432
        });
433
        masterPanel.add(filtersGroupPanel);
434
        
435
        
436
        addOptionsForTable(tableListBox, x_axisListBox, y_axisListBox, numberOfCurrentColumn);
437
		final Button filtersButton = new Button();
438
		filtersButton.setText("Add filter(s)");
439
		filtersButton.setType(ButtonType.SUCCESS);
440
		filtersButton.addClickHandler(new ClickHandler() {
555
			}
556
		});
557
		masterPanel.add(filtersGroupPanel);
558

  
559
		addOptionsForTable(tableListBox, x_axisListBox, y_axisListBox,
560
				numberOfCurrentColumn);
561
	
562
		applyChanges.setText("Apply");
563
		applyChanges.addStyleName("applychanges");
564
		applyChanges.setType(ButtonType.PRIMARY);
565
		applyChanges.addClickHandler(new ClickHandler() {
441 566
			
442 567
			@Override
443
			public void onClick(ClickEvent arg0) {
568
			public void onClick(ClickEvent event) {
444 569
				// TODO Auto-generated method stub
445
				filtersTable.clear();
446
				filtersTable.removeAllRows();
447
				filtersTable.getRowFormatter().addStyleName(0, "tables-header");
448
				filtersTable.setText(0, 0, "Field");
449
				filtersTable.setText(0, 1, "Value");
450
				filtersTable.setText(0, 2, "Remove");
451
				filtersTable.setText(0, 3, "Edit");
452
				filtersButton.setEnabled(false);
570
				applyChanges.setEnabled(false);
571
				applyChanges.removeStyleName("flashing-button-apply");
572
				Generate.getInstance().getTheme1().addLoadHandler(new LoadHandler() {
573
					
574
					@Override
575
					public void onLoad(LoadEvent event) {
576
						applyChanges.setEnabled(true);
577
					}
578
				});
579
				Generate.getInstance().generateURLs(ValuesOfFields.getInstance(),1);
453 580
			}
454 581
		});
582
		totalNumberRadio.setValue(true);
583
		y_axisListBox.getListBox().setEnabled(false);
584
		aggregateListBox.setEnabled(false);
585
		generalOptionsGroupPanel.add(applyChanges);
586
		
455 587
		whereToAttach.add(masterPanel);
456
		
588

  
457 589
	}
458
	
459
	public void addOptionsForTable(final ListBox tableListBox,final DropdownListWidget x_axisListBox, final DropdownListWidget y_axisListBox,final int numberOfCurrentColumn){
460 590

  
461
		for(int i=0;i<schemaFromServer.getSchema().length();i++){
462
				tableListBox.addItem(schemaFromServer.getSchema().get(i).getLabel());
463
				tableListBox.setSelectedIndex(i);
591
	public void addOptionsForTable(final ListBox tableListBox,
592
			final DropdownListWidget x_axisListBox,
593
			final DropdownListWidget y_axisListBox,
594
			final int numberOfCurrentColumn) {
595

  
596
		for (int i = 0; i < schemaFromServer.getSchema().length(); i++) {
597
			tableListBox
598
					.addItem(schemaFromServer.getSchema().get(i).getLabel());
599
			tableListBox.setSelectedIndex(i);
464 600
		}
465 601

  
466
		if(isFromLoad){
467
			tableListBox.setSelectedIndex(ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).getIndexOfDataSource());
602
		if (isFromLoad) {
603
			tableListBox.setSelectedIndex(ValuesOfFields.getInstance()
604
					.getColumnsDataList().get(numberOfCurrentColumn)
605
					.getIndexOfDataSource());
468 606
		}
469 607

  
470 608
		tableListBox.addChangeHandler(new ChangeHandler() {
471
			
609

  
472 610
			@Override
473 611
			public void onChange(ChangeEvent arg0) {
474 612
				// TODO Auto-generated method stub
475
				ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setDataSource(tableListBox.getItemText(tableListBox.getSelectedIndex()));
476
				ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setIndexOfDataSource(tableListBox.getSelectedIndex());
477
				addOptionsForX_axis(numberOfCurrentColumn,x_axisListBox);
478
				addOptionsForY_axis(y_axisListBox,numberOfCurrentColumn);
479
				
613
				ValuesOfFields
614
						.getInstance()
615
						.getColumnsDataList()
616
						.get(numberOfCurrentColumn)
617
						.setDataSource(
618
								tableListBox.getItemText(tableListBox
619
										.getSelectedIndex()));
620
				ValuesOfFields.getInstance().getColumnsDataList()
621
						.get(numberOfCurrentColumn)
622
						.setIndexOfDataSource(tableListBox.getSelectedIndex());
623

  
624
				addOptionsForX_axis(numberOfCurrentColumn, x_axisListBox);
625
				addOptionsForY_axis(y_axisListBox, numberOfCurrentColumn);
626

  
627
				// clear all filters if the table has changed
628
				ValuesOfFields.getInstance().getColumnsDataList()
629
						.get(numberOfCurrentColumn).getFilters().clear();
630
				filtersPanel.asWidget().removeFromParent();
631
				filtersPanel.getFiltersPanel().clear();
632
				filtersPanel = new FiltersPanel(schemaFromServer,
633
						numberOfCurrentColumn, false, filtersPanels);
634
				filtersGroupPanel.add(filtersPanel.asWidget());
635

  
480 636
			}
481 637
		});
482 638

  
483
		ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setDataSource(tableListBox.getItemText(tableListBox.getSelectedIndex()));
484
		ValuesOfFields.getInstance().getColumnsDataList().get(numberOfCurrentColumn).setIndexOfDataSource(tableListBox.getSelectedIndex());
639
		ValuesOfFields
640
				.getInstance()
641
				.getColumnsDataList()
642
				.get(numberOfCurrentColumn)
643
				.setDataSource(
644
						tableListBox.getItemText(tableListBox
645
								.getSelectedIndex()));
646
		ValuesOfFields.getInstance().getColumnsDataList()
647
				.get(numberOfCurrentColumn)
648
				.setIndexOfDataSource(tableListBox.getSelectedIndex());
485 649

  
486
		addOptionsForX_axis(numberOfCurrentColumn,x_axisListBox);
487
		addOptionsForY_axis(y_axisListBox,numberOfCurrentColumn);
650
		addOptionsForX_axis(numberOfCurrentColumn, x_axisListBox);
651
		addOptionsForY_axis(y_axisListBox, numberOfCurrentColumn);
488 652
	}
489
	
490
	public void addOptionsForX_axis(final int numberOfCurrentColumn,DropdownListWidget x_axisListBox){
653

  
654
	public void addOptionsForX_axis(final int numberOfCurrentColumn,
655
			DropdownListWidget x_axisListBox) {
656

  
657
		x_axisListBox.clear();
658

  
491 659
		
492
		
493
		x_axisListBox.clear();
494
		if(loadPresets){
495
			loadPresets();
496
		}
497
		if(ValuesOfFields.getInstance().getColumnsDataList().size()==1){
498
			//ferta ola
499
			
500
			if(!isFromLoad){
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff