Changeset 2932
- Timestamp:
- 05/24/13 15:45:15 (11 years ago)
- Location:
- SRUAggregator/trunk/src/main
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
r2928 r2932 52 52 import org.zkoss.zul.DefaultTreeNode; 53 53 import org.zkoss.zul.Div; 54 import org.zkoss.zul.Menubar; 55 import org.zkoss.zul.North; 54 56 import org.zkoss.zul.Popup; 55 57 import org.zkoss.zul.Progressmeter; 58 import org.zkoss.zul.South; 56 59 57 60 /** … … 133 136 @Wire 134 137 Progressmeter pMeter; 138 139 @Wire 140 Menubar menubar; 141 @Wire 142 North controls1; 143 @Wire 144 South controls2; 145 146 147 148 private ControlsVisibility controlsVisibility; 135 149 136 150 @Override … … 164 178 searchResultsComposer = (SearchResults) srDiv.getChildren().get(0).getChildren().get(0).getAttribute("$" + SearchResults.class.getSimpleName()); 165 179 166 180 controlsVisibility = new ControlsVisibility(controls1, controls2, pMeter, menubar); 167 181 168 182 } … … 178 192 } 179 193 180 @Listen("onClick = #selectAll")181 public void onSelectAll(Event ev) {182 Treechildren openTreeItems = tree.getTreechildren();183 for (Treeitem openItem : openTreeItems.getItems()) {184 CorpusTreeNodeRenderer.selectItem(openItem);185 }186 }187 188 @Listen("onClick = #deselectAll")189 public void onDeselectAll(Event ev) {190 Treechildren openTreeItems = tree.getTreechildren();191 for (Treeitem openItem : openTreeItems.getItems()) {192 CorpusTreeNodeRenderer.unselectItem(openItem);193 }194 }194 // @Listen("onClick = #selectAll") 195 // public void onSelectAll(Event ev) { 196 // Treechildren openTreeItems = tree.getTreechildren(); 197 // for (Treeitem openItem : openTreeItems.getItems()) { 198 // CorpusTreeNodeRenderer.selectItem(openItem); 199 // } 200 // } 201 // 202 // @Listen("onClick = #deselectAll") 203 // public void onDeselectAll(Event ev) { 204 // Treechildren openTreeItems = tree.getTreechildren(); 205 // for (Treeitem openItem : openTreeItems.getItems()) { 206 // CorpusTreeNodeRenderer.unselectItem(openItem); 207 // } 208 // } 195 209 196 210 @Listen("onClick = #searchButton") … … 211 225 } else { 212 226 int maxRecords = searchOptionsComposer.getMaxRecords(); 213 searchResultsComposer.executeSearch(selectedCorpora, maxRecords, searchString.getText(), pMeter);227 searchResultsComposer.executeSearch(selectedCorpora, maxRecords, searchString.getText(), controlsVisibility); 214 228 onClickSearchResult(null); 215 229 } … … 223 237 @Listen("onClick=#clearResults") 224 238 public void onClearResults(Event ev) { 225 resultsBox.getChildren().clear(); 226 } 227 228 @Listen("onClick=#showHelp") 229 public void onShowHelp(Event ev) { 230 resultsBox.getChildren().clear(); 231 Iframe help = new Iframe(); 232 help.setWidth("100%"); 233 help.setHeight("100%"); 234 help.setSrc("help.html"); 235 resultsBox.appendChild(help); 236 } 237 238 @Listen("onClick=#showAbout") 239 public void onShowAbout(Event ev) { 240 Messagebox.show("CLARIN-D Federated Content Search Aggregator\n\nVersion 0.0.1", "FCS", 0, Messagebox.INFORMATION); 241 242 } 239 this.searchResultsComposer.clearResults(); 240 241 242 } 243 244 // @Listen("onClick=#showHelp") 245 // public void onShowHelp(Event ev) { 246 // resultsBox.getChildren().clear(); 247 // Iframe help = new Iframe(); 248 // help.setWidth("100%"); 249 // help.setHeight("100%"); 250 // help.setSrc("help.html"); 251 // resultsBox.appendChild(help); 252 // } 253 // 254 // @Listen("onClick=#showAbout") 255 // public void onShowAbout(Event ev) { 256 // Messagebox.show("CLARIN-D Federated Content Search Aggregator\n\nVersion 0.0.1", "FCS", 0, Messagebox.INFORMATION); 257 // 258 // } 243 259 244 260 @Listen("onClick=#exportResultsCSV") … … 384 400 this.srDiv.setVisible(false); 385 401 this.srLabel.setSclass("internalLink"); 402 403 this.controlsVisibility.disableControls1(); 386 404 } 387 405 … … 396 414 this.srDiv.setVisible(false); 397 415 this.srLabel.setSclass("internalLink"); 416 417 this.controlsVisibility.disableControls1(); 398 418 } 399 419 … … 408 428 this.srDiv.setVisible(false); 409 429 this.srLabel.setSclass("internalLink"); 430 431 this.controlsVisibility.disableControls1(); 410 432 } 411 433 … … 420 442 this.helpDiv.setVisible(false); 421 443 this.helpLabel.setSclass("internalLink"); 422 } 444 445 if (this.searchResultsComposer.hasResults()) { 446 this.controlsVisibility.enableControls1(); 447 } 448 } 449 423 450 } -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/SearchResults.java
r2928 r2932 132 132 133 133 134 private Progressmeter progress; 135 134 //private Progressmeter progress; 135 private ControlsVisibility controlsVisibility; 136 137 138 private boolean hasResults = false; 136 139 137 140 … … 195 198 // } 196 199 197 @Listen("onClick=#clearResults") 198 public void onClearResults(Event ev) { 200 public void clearResults() { 201 // terminate previous search requests and corresponding response processing 202 terminateProcessingRequestsAndResponses(); 203 this.controlsVisibility.disableControls1(); 204 this.controlsVisibility.disableControls2(); 199 205 resultsBox.getChildren().clear(); 206 this.hasResults = false; 207 208 200 209 } 201 210 … … 302 311 303 312 304 void executeSearch(Map<String, Set<Corpus2>> selectedCorpora, int maxRecords, String searchString, Progressmeter pMeter) { 305 306 this.progress = pMeter; 307 this.progress.setValue(0); 308 this.progress.setVisible(true); 313 void executeSearch(Map<String, Set<Corpus2>> selectedCorpora, int maxRecords, String searchString, ControlsVisibility controlsVisibility) { 314 315 this.controlsVisibility = controlsVisibility; 316 this.controlsVisibility.enableControls1(); 317 this.controlsVisibility.enableControls2(); 318 this.controlsVisibility.enableProgressMeter(0); 319 this.hasResults = true; 309 320 310 321 … … 378 389 resultsThread = new SearchResults.UpdateResultsThread(); 379 390 resultsThread.start(); 391 } 392 393 public boolean hasResults() { 394 return this.hasResults; 380 395 } 381 396 … … 449 464 450 465 if (resultsUnprocessed.isEmpty()) { 451 progress.setValue(0);452 progress.setVisible(false);466 controlsVisibility.disableProgressMeter(); 467 controlsVisibility.disableControls2(); 453 468 } else { 454 progress.setValue(100 * resultsProcessed.size() / (resultsUnprocessed.size() + resultsProcessed.size() + 1));469 controlsVisibility.updateProgressMeter(100 * resultsProcessed.size() / (resultsUnprocessed.size() + resultsProcessed.size() + 1)); 455 470 } 456 471 -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/sparam2/Corpus2.java
r2928 r2932 151 151 152 152 //TODO: temp for testing, this 3 lines are to be removed: 153 //if (!endp.getUrl().startsWith("http://cqlservlet.mpi.nl") && !endp.getUrl().contains("weblicht")) {154 //continue;155 //}153 if (!endp.getUrl().startsWith("http://cqlservlet.mpi.nl") && !endp.getUrl().contains("weblicht")) { 154 continue; 155 } 156 156 157 157 SRUScanResponse corporaResponse = null; -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/sparam2/Corpus2Renderer.java
r2928 r2932 48 48 public class Corpus2Renderer implements TreeitemRenderer<DefaultTreeNode<Corpus2>> { 49 49 50 Map<String, Set<Corpus2>> selectedCorpora = new HashMap<String, Set<Corpus2>>();50 Map<String, Set<Corpus2>> selectedCorpora = new HashMap<String, Set<Corpus2>>(); 51 51 Languages languages; 52 52 53 53 public Corpus2Renderer() { 54 54 languages = (Languages) Executions.getCurrent().getDesktop().getWebApp().getAttribute(WebAppListener.LANGUAGES); 55 55 } 56 56 57 57 @Override 58 58 public void render(Treeitem treeItem, DefaultTreeNode<Corpus2> treeNode, int index) throws Exception { … … 111 111 } 112 112 } 113 114 115 116 boolean selectChildren = false; 117 for (Component comp : openedTreeitem.getChildren()) { 118 if (comp instanceof Treerow) { 119 Treerow row = (Treerow) comp; 120 Checkbox checkbox = (Checkbox) row.getFirstChild().getFirstChild(); 121 if (checkbox.isChecked()) { 122 selectChildren = true; 123 } 124 break; 125 } 126 } 127 if (selectChildren) { 128 for (Component comp : openedTreeitem.getChildren()) { 129 if (comp instanceof Treechildren) { 130 Treechildren item = (Treechildren) comp; 131 for (Treeitem childItem : item.getItems()) { 132 updateItem(childItem, selectChildren); 133 } 134 break; 135 } 136 } 137 } 138 139 140 141 142 113 143 } 114 144 }); … … 136 166 DefaultTreeNode<Corpus2> eventNode = (DefaultTreeNode<Corpus2>) eventItem.getValue(); 137 167 toggleCorpusCheckbox(eventNode.getData(), eventCheckbox, eventRow); 168 updateParentItem(eventItem, eventCheckbox.isChecked()); 138 169 for (Treeitem item : eventItem.getTreechildren().getItems()) { 139 170 updateItem(item, eventCheckbox.isChecked()); … … 143 174 return checkbox; 144 175 } 145 176 177 private void updateParentItem(Treeitem item, boolean checked) { 178 179 // if item becomes unselected, unselect it parent 180 if (!checked) { 181 Treeitem parent = item.getParentItem(); 182 if (parent != null) { 183 for (Component comp : parent.getChildren()) { 184 // update the item row 185 if (comp instanceof Treerow) { 186 Treerow row = (Treerow) comp; 187 Checkbox checkbox = (Checkbox) row.getFirstChild().getFirstChild(); 188 DefaultTreeNode<Corpus2> node = (DefaultTreeNode<Corpus2>) parent.getValue(); 189 checkbox.setChecked(checked); 190 toggleCorpusCheckbox(node.getData(), checkbox, row); 191 updateParentItem(parent, checked); 192 break; 193 } 194 } 195 196 } 197 } 198 } 146 199 147 200 private void toggleCorpusCheckbox(Corpus2 corpus, Checkbox checkbox, Treerow row) { … … 154 207 } 155 208 } 156 209 157 210 public void updateItem(Treeitem item, boolean select) { 158 Treerow row; 159 if (item.getFirstChild() instanceof Treerow) { 160 row = (Treerow) item.getFirstChild(); 161 Checkbox checkbox = (Checkbox) row.getFirstChild().getFirstChild(); 162 DefaultTreeNode<Corpus2> node = (DefaultTreeNode<Corpus2>) item.getValue(); 163 checkbox.setChecked(select); 164 toggleCorpusCheckbox(node.getData(), checkbox, row); 165 } else { 166 Treechildren children = (Treechildren) item.getFirstChild(); 167 for (Treeitem childItem : children.getItems()) { 168 updateItem(childItem, select); 169 } 170 } 171 172 173 } 174 211 212 for (Component comp : item.getChildren()) { 213 // update the item row 214 if (comp instanceof Treerow) { 215 Treerow row = (Treerow) comp; 216 Checkbox checkbox = (Checkbox) row.getFirstChild().getFirstChild(); 217 DefaultTreeNode<Corpus2> node = (DefaultTreeNode<Corpus2>) item.getValue(); 218 checkbox.setChecked(select); 219 toggleCorpusCheckbox(node.getData(), checkbox, row); 220 // update the item children 221 } else if (comp instanceof Treechildren) { 222 Treechildren children = (Treechildren) comp; 223 for (Treeitem childItem : children.getItems()) { 224 updateItem(childItem, select); 225 } 226 } 227 } 228 229 } 175 230 176 231 // private Label createLabelForCorpus(Corpus2 data) { … … 262 317 } 263 318 langs.append(" "); 264 319 265 320 } 266 321 Label label = new Label(langs.toString()); -
SRUAggregator/trunk/src/main/webapp/index.zul
r2928 r2932 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <?page title="CLARIN-D Federated Content Search" ?>2 <?page title="CLARIN-D Federated Content Search" automaticTimeout="false"?> 3 3 <zk> 4 4 <window id="mainWindow" contentStyle="background:white;" height="100%" … … 30 30 </vlayout> 31 31 </north> 32 32 <!-- 33 33 <center margins="0,5,0,0" autoscroll="true" border="0"> 34 34 <div> … … 36 36 <progressmeter visible="false" id="pMeter" value="0" width="300px" /> 37 37 </div> 38 <menubar id="menubar" visible="true" width="100%" style="margin-top:2px;border:0;"> 39 <menu label="Actions" image="buttonActions.png"> 40 <menupopup> 41 <menuitem label="Clear Results" id="clearResults" 42 image="buttonDelete.png"/> 43 <menuitem label="Export Results to CSV" id="exportResultsCSV" 44 image="buttonExport.png"/> 45 <menuitem label="Export Results to TCF" id="exportResultsTCF" 46 image="buttonExport.png"/> 47 <menuitem label="Export Results as TCF to personal workspace" id="exportResultsPWTCF" 48 image="buttonExport.png"/> 49 </menupopup> 50 </menu> 51 <menu label="Help" image="buttonHelp.png"> 52 <menupopup> 53 <menuitem label="Show Help" id="showHelp" image="buttonHelp.png"/> 54 <menuitem label="About" id="showAbout" 55 image="buttonShowAbout.png"/> 56 </menupopup> 57 </menu> 58 </menubar> 59 38 60 <div id="aboutDiv"><include src="about.zul"/></div> 39 61 <div id="soDiv" visible="false"><include src="searchOptions.zul"/></div> … … 43 65 44 66 </center> 67 --> 68 69 70 <center border="0"> 71 <borderlayout sclass="complex-layout"> 72 73 <north id="controls1" size="0px" style="border-width:0px 0px 0px 0px;"> 74 75 <div> 76 77 78 <menubar id="menubar" width="100%" style="margin-top:2px;border:0;"> 79 <menuitem label="Clear" id="clearResults" 80 image="buttonDelete.png"/> 81 <menu label="Export to Workspace" image="buttonActions.png"> 82 <menupopup> 83 <menuitem label="Export Results as CSV" id="exportResultsPWCSV" 84 image="buttonExport.png"/> 85 <menuitem label="Export Results as TCF" id="exportResultsPWTCF" 86 image="buttonExport.png"/> 87 </menupopup> 88 </menu> 89 <menu label="Download" image="buttonHelp.png"> 90 <menupopup> 91 <menuitem label="Download Results as CSV" id="downloadResultsCSV" 92 image="buttonExport.png"/> 93 <menuitem label="Download Results as TCF" id="downloadResultsTCF" 94 image="buttonExport.png"/> 95 </menupopup> 96 </menu> 97 </menubar> 98 99 </div> 100 101 </north> 102 103 <center margins="0,5,0,0" autoscroll="true" border="0"> 104 <div> 105 <div id="aboutDiv"><include src="about.zul"/></div> 106 <div id="soDiv" visible="false"><include src="searchOptions.zul"/></div> 107 <div id="srDiv" visible="false"><include src="searchResults.zul"/></div> 108 <div id="helpDiv" visible="false"><include src="help.zul"/></div> 109 </div> 110 111 </center> 112 113 114 <south id="controls2" size="0px" 115 style="border-width:0px 0px 0px 0px;text-align:center;"> 116 <div align="center"> 117 <progressmeter visible="false" id="pMeter" value="0" width="300px" /> 118 </div> 119 120 </south> 121 122 123 </borderlayout> 124 </center> 125 126 127 128 129 130 45 131 46 132 <!-- Fusszeile --> -
SRUAggregator/trunk/src/main/webapp/searchOptions.zul
r2928 r2932 60 60 </groupbox> 61 61 62 <!-- 62 63 <separator/> 63 64 <separator/> … … 71 72 <comboitem label="words"/> 72 73 </combobox> 73 <!-- 74 74 75 <div style="margin-top:2px;text-align:right;"> 75 76 <button id="addTierButton" label="Add" … … 78 79 image="buttonDeselectAll.png" sclass="ccsDarkBlue"/> 79 80 </div> 80 --> 81 </div> 82 </groupbox> 81 82 </div> 83 </groupbox> 84 --> 83 85 84 86 85 86 <separator/> 87 </panelchildren> 88 </panel> 87 <separator/> 88 </panelchildren> 89 </panel> -
SRUAggregator/trunk/src/main/webapp/searchResults.zul
r2926 r2932 1 1 <vlayout apply="eu.clarin.sru.fcs.aggregator.app.SearchResults"> 2 2 3 <menubar id="menubar" width="100%" style="margin-top:2px;border:0;"> 4 <menu label="Actions" image="buttonActions.png"> 5 <menupopup> 6 <menuitem label="Clear Results" id="clearResults" 7 image="buttonDelete.png"/> 8 <menuitem label="Export Results to CSV" id="exportResultsCSV" 9 image="buttonExport.png"/> 10 <menuitem label="Export Results to TCF" id="exportResultsTCF" 11 image="buttonExport.png"/> 12 <menuitem label="Export Results as TCF to personal workspace" id="exportResultsPWTCF" 13 image="buttonExport.png"/> 14 </menupopup> 15 </menu> 16 <menu label="Help" image="buttonHelp.png"> 17 <menupopup> 18 <menuitem label="Show Help" id="showHelp" image="buttonHelp.png"/> 19 <menuitem label="About" id="showAbout" 20 image="buttonShowAbout.png"/> 21 </menupopup> 22 </menu> 23 </menubar> 24 3 25 4 <panel> 26 5 <panelchildren id="resultsPanel" > 27 6 <window id="resultsBox" style="overflow:auto;"> 28 < div style="margin:30px;">To get the results, please enter a keyword into the search fieled above, e.g. Elephant, and press the search button.</div>7 <!--<div style="margin:30px;">To get the results, please enter a keyword into the search fieled above, e.g. Elephant, and press the search button.</div>--> 29 8 </window> 30 9 <label value=" " id="searchResultsProgress" style="border-width:0px;margin-left:5px;"/> 31 10 </panelchildren> 32 11 </panel> 12 13 <!-- 14 <borderlayout width="100px" height="100px"> 15 <north> 16 <div style="background:#008db7;color:white;">N</div> 17 </north> 18 <south> 19 <div style="background:#112f37;color:white;">S</div> 20 </south> 21 <center> 22 <div>C</div> 23 </center> 24 <east> 25 <div style="background:#f2f2f2;">E</div> 26 </east> 27 <west> 28 <div style="background:#f2f2f2;">W</div> 29 </west> 30 </borderlayout> 31 --> 33 32 </vlayout>
Note: See TracChangeset
for help on using the changeset viewer.