Changeset 2932


Ignore:
Timestamp:
05/24/13 15:45:15 (11 years ago)
Author:
yana
Message:

corpus selection working, layout changed a bit

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  
    5252import org.zkoss.zul.DefaultTreeNode;
    5353import org.zkoss.zul.Div;
     54import org.zkoss.zul.Menubar;
     55import org.zkoss.zul.North;
    5456import org.zkoss.zul.Popup;
    5557import org.zkoss.zul.Progressmeter;
     58import org.zkoss.zul.South;
    5659
    5760/**
     
    133136    @Wire
    134137    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;
    135149
    136150    @Override
     
    164178        searchResultsComposer = (SearchResults) srDiv.getChildren().get(0).getChildren().get(0).getAttribute("$" + SearchResults.class.getSimpleName());
    165179       
    166        
     180        controlsVisibility = new ControlsVisibility(controls1, controls2, pMeter, menubar);
    167181       
    168182    }
     
    178192    }
    179193
    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//    }
    195209
    196210    @Listen("onClick = #searchButton")
     
    211225        } else {
    212226            int maxRecords = searchOptionsComposer.getMaxRecords();
    213             searchResultsComposer.executeSearch(selectedCorpora, maxRecords, searchString.getText(), pMeter);
     227            searchResultsComposer.executeSearch(selectedCorpora, maxRecords, searchString.getText(), controlsVisibility);
    214228            onClickSearchResult(null);
    215229        }
     
    223237    @Listen("onClick=#clearResults")
    224238    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//    }
    243259
    244260    @Listen("onClick=#exportResultsCSV")
     
    384400        this.srDiv.setVisible(false);
    385401        this.srLabel.setSclass("internalLink");
     402       
     403        this.controlsVisibility.disableControls1();
    386404    }
    387405   
     
    396414        this.srDiv.setVisible(false);
    397415        this.srLabel.setSclass("internalLink");
     416       
     417        this.controlsVisibility.disableControls1();
    398418    }
    399419   
     
    408428        this.srDiv.setVisible(false);
    409429        this.srLabel.setSclass("internalLink");
     430       
     431        this.controlsVisibility.disableControls1();
    410432    }
    411433   
     
    420442        this.helpDiv.setVisible(false);
    421443        this.helpLabel.setSclass("internalLink");
    422     }
     444       
     445        if (this.searchResultsComposer.hasResults()) {
     446            this.controlsVisibility.enableControls1();
     447        }
     448    }
     449
    423450}
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/SearchResults.java

    r2928 r2932  
    132132   
    133133   
    134     private Progressmeter progress;
    135    
     134    //private Progressmeter progress;
     135    private ControlsVisibility controlsVisibility;
     136   
     137   
     138    private boolean hasResults = false;
    136139
    137140
     
    195198//    }
    196199
    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();
    199205        resultsBox.getChildren().clear();
     206        this.hasResults = false;
     207       
     208       
    200209    }
    201210
     
    302311
    303312
    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;
    309320       
    310321       
     
    378389        resultsThread = new SearchResults.UpdateResultsThread();
    379390        resultsThread.start();
     391    }
     392
     393    public boolean hasResults() {
     394        return this.hasResults;
    380395    }
    381396   
     
    449464           
    450465            if (resultsUnprocessed.isEmpty()) {
    451                 progress.setValue(0);
    452                 progress.setVisible(false);
     466                controlsVisibility.disableProgressMeter();
     467                controlsVisibility.disableControls2();
    453468            } else {
    454                 progress.setValue(100 * resultsProcessed.size() / (resultsUnprocessed.size() + resultsProcessed.size() + 1));
     469                controlsVisibility.updateProgressMeter(100 * resultsProcessed.size() / (resultsUnprocessed.size() + resultsProcessed.size() + 1));
    455470            }
    456471
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/sparam2/Corpus2.java

    r2928 r2932  
    151151               
    152152                //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                }
    156156               
    157157                SRUScanResponse corporaResponse = null;
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/sparam2/Corpus2Renderer.java

    r2928 r2932  
    4848public class Corpus2Renderer implements TreeitemRenderer<DefaultTreeNode<Corpus2>> {
    4949
    50     Map<String, Set<Corpus2>> selectedCorpora = new HashMap<String,Set<Corpus2>>();
     50    Map<String, Set<Corpus2>> selectedCorpora = new HashMap<String, Set<Corpus2>>();
    5151    Languages languages;
    52    
     52
    5353    public Corpus2Renderer() {
    5454        languages = (Languages) Executions.getCurrent().getDesktop().getWebApp().getAttribute(WebAppListener.LANGUAGES);
    5555    }
    56    
     56
    5757    @Override
    5858    public void render(Treeitem treeItem, DefaultTreeNode<Corpus2> treeNode, int index) throws Exception {
     
    111111                    }
    112112                }
     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               
    113143            }
    114144        });
     
    136166                DefaultTreeNode<Corpus2> eventNode = (DefaultTreeNode<Corpus2>) eventItem.getValue();
    137167                toggleCorpusCheckbox(eventNode.getData(), eventCheckbox, eventRow);
     168                updateParentItem(eventItem, eventCheckbox.isChecked());
    138169                for (Treeitem item : eventItem.getTreechildren().getItems()) {
    139170                    updateItem(item, eventCheckbox.isChecked());
     
    143174        return checkbox;
    144175    }
    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    }
    146199
    147200    private void toggleCorpusCheckbox(Corpus2 corpus, Checkbox checkbox, Treerow row) {
     
    154207        }
    155208    }
    156    
     209
    157210    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    }
    175230
    176231//    private Label createLabelForCorpus(Corpus2 data) {
     
    262317                }
    263318                langs.append(" ");
    264                
     319
    265320            }
    266321            Label label = new Label(langs.toString());
  • SRUAggregator/trunk/src/main/webapp/index.zul

    r2928 r2932  
    11<?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"?>
    33<zk>
    44    <window id="mainWindow" contentStyle="background:white;" height="100%"
     
    3030                        </vlayout>
    3131            </north>
    32 
     32<!--
    3333            <center margins="0,5,0,0" autoscroll="true" border="0">
    3434                        <div>
     
    3636                                <progressmeter visible="false" id="pMeter" value="0" width="300px" />
    3737                            </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                       
    3860                            <div id="aboutDiv"><include src="about.zul"/></div>
    3961                            <div id="soDiv" visible="false"><include src="searchOptions.zul"/></div>
     
    4365               
    4466            </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           
    45131
    46132            <!-- Fusszeile -->
  • SRUAggregator/trunk/src/main/webapp/searchOptions.zul

    r2928 r2932  
    6060                                </groupbox>
    6161
     62<!--
    6263                                <separator/>
    6364                                <separator/>
     
    7172                                            <comboitem label="words"/>
    7273                                        </combobox>
    73 <!--
     74
    7475                                        <div style="margin-top:2px;text-align:right;">
    7576                                            <button id="addTierButton" label="Add"
     
    7879                                                image="buttonDeselectAll.png" sclass="ccsDarkBlue"/>
    7980                                        </div>
    80 -->
    81                                     </div>
    82                                 </groupbox>
     81
     82                                            </div>
     83                                        </groupbox>
     84        -->
    8385
    8486
    85 
    86                                 <separator/>
    87                             </panelchildren>
    88                         </panel>
     87        <separator/>
     88    </panelchildren>
     89</panel>
  • SRUAggregator/trunk/src/main/webapp/searchResults.zul

    r2926 r2932  
    11<vlayout apply="eu.clarin.sru.fcs.aggregator.app.SearchResults">
    22                   
    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                       
    254                        <panel>
    265                            <panelchildren id="resultsPanel"  >
    276                                <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>-->
    298                                </window>
    309                                <label value=" " id="searchResultsProgress" style="border-width:0px;margin-left:5px;"/>
    3110                            </panelchildren>
    3211                        </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-->
    3332</vlayout>
Note: See TracChangeset for help on using the changeset viewer.