Author: dward
Date: 2007-09-27 19:54:11 +0200 (Thu, 27 Sep 2007)
New Revision: 5107

Added:
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ResourceAdder.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/SearchPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ViewPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/Viewer.java
Modified:
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ActionColumn.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ReviewColumn.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/TitleColumn.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/history/SearcherHistory.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/ResultsPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SearcherPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorMainPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorPanel.java
   
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/wizard/AddAssetWizard.java
Log:
- CURRIKI-882
 - Make back using history do a search even if no terms used
 - Hook new search into CB

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ActionColumn.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ActionColumn.java
      2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ActionColumn.java
      2007-09-27 17:54:11 UTC (rev 5107)
@@ -22,10 +22,20 @@
  */
 package org.curriki.gwt.client.search.columns;
 
+import com.google.gwt.user.client.ui.Hyperlink;
+import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.xpn.xwiki.gwt.api.client.Document;
+import org.curriki.gwt.client.Constants;
 import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.search.editor.ResourceAdder;
+import org.curriki.gwt.client.utils.ClickListenerString;
 
 public class ActionColumn extends ResultsColumn
 {
+    protected ResourceAdder resourceAdder;
+    protected ClickListener cancelListener;
+
     public ActionColumn()
     {
         this.header = Main.getTranslation("search.results.col.action");
@@ -36,4 +46,39 @@
     {
         super(header, columnStyle);
     }
+
+    public void setResourceAdder(ResourceAdder resourceAdder){
+        this.resourceAdder = resourceAdder;
+    }
+
+    public void setCancelListener(ClickListener cancelListener){
+        this.cancelListener = cancelListener;
+    }
+
+    public Widget getDisplayWidget(Document value)
+    {
+        if (resourceAdder != null && (Main.getSingleton().getUser() != null) 
&& 
!(Main.getSingleton().getUser().getFullName().equals(Constants.USER_XWIKI_GUEST))){
+            Hyperlink a = new Hyperlink();
+            a.addStyleName("results-action-cell-link");
+            a.setHTML(Main.getTranslation("editor.btt_add"));
+            a.addClickListener(new AddAsset(value.getFullName()));
+            return a;
+        }
+
+        return null;
+    }
+
+    private class AddAsset extends ClickListenerString
+    {
+        public AddAsset(String arg) {
+            super(arg);
+        }
+
+        public void onClick(Widget sender) {
+            resourceAdder.addExistingResource(arg);
+            if (cancelListener != null){
+                cancelListener.onClick(sender);
+            }
+        }
+    }
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ReviewColumn.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ReviewColumn.java
      2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/ReviewColumn.java
      2007-09-27 17:54:11 UTC (rev 5107)
@@ -59,10 +59,10 @@
 
     public Widget getDisplayWidget(Document value)
     {
+        Image img = null;
         final String url = value.getViewURL()+"?viewer=comments";
 
         String rating = getDisplayString(value);
-        Image img = new Image();
         if (rating.length() > 0){
             if (!rating.equals("0")){
                 img = new Image(Constants.ICON_PATH+"CRS"+rating+".png");
@@ -71,8 +71,8 @@
                         Main.changeWindowHref(url);
                     }
                 });
+                this.addTooltip(img, 
Main.getTranslation("search.crs.tooltip."+rating));
             }
-            this.addTooltip(img, 
Main.getTranslation("search.crs.tooltip."+rating));
         }
 
         return img;

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/TitleColumn.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/TitleColumn.java
       2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/columns/TitleColumn.java
       2007-09-27 17:54:11 UTC (rev 5107)
@@ -26,14 +26,23 @@
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.user.client.ui.PopupPanel;
 import com.google.gwt.user.client.ui.SourcesMouseEvents;
+import com.google.gwt.user.client.ui.ClickListener;
 import com.xpn.xwiki.gwt.api.client.Document;
 import org.curriki.gwt.client.Constants;
 import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.search.editor.Viewer;
+import org.curriki.gwt.client.search.editor.ViewPanel;
+import org.curriki.gwt.client.search.editor.ResourceAdder;
+import org.curriki.gwt.client.utils.ClickListenerDocument;
+import org.curriki.gwt.client.utils.ClickListenerString;
 import org.curriki.gwt.client.widgets.metadata.TooltipMouseListener;
 
-public class TitleColumn extends ResultsColumn
+public class TitleColumn extends ResultsColumn implements Viewer
 {
     protected int maxLength = 78;
+    protected Viewer viewer;
+    protected ResourceAdder wizard;
+    protected ClickListener cancelListener = null;
 
     public TitleColumn()
     {
@@ -45,8 +54,28 @@
     public TitleColumn(String header, String columnStyle)
     {
         super(header, columnStyle);
+        this.sortBy = Constants.ASSET_CLASS+"."+Constants.ASSET_TITLE_PROPERTY;
     }
 
+    public TitleColumn(ResourceAdder wizard, Viewer viewer, ClickListener 
cancelListener){
+        this();
+        this.wizard = wizard;
+        this.viewer = viewer;
+        this.cancelListener = cancelListener;
+    }
+
+    public void setViewer(Viewer viewer){
+        this.viewer = viewer;
+    }
+
+    public void setResourceAdder(ResourceAdder wizard){
+        this.wizard = wizard;
+    }
+
+    public void setCancelListener(ClickListener cancelListener){
+        this.cancelListener = cancelListener;
+    }
+
     public String getDisplayString(Document value)
     {
         String name = (value.getTitle().length() > 0) ? value.getTitle() : 
value.getName();
@@ -99,14 +128,54 @@
             name = Main.getTranslation("search.unknown_title");
         }
         
-        nameCol.setHTML("<a href=\""+url+"\">"+name+"</a>");
         if (desc.length() > 0){
             addTooltip(nameCol, "<b>Description:</b><br>"+desc);
         }
 
+        if (viewer == null){
+            // If in site
+            nameCol.setHTML("<a href=\""+url+"\">"+name+"</a>");
+        } else {
+            // If in CB
+            nameCol.setHTML(name);
+            nameCol.addClickListener(new ClickListenerDocument(value) {
+                public void onClick(Widget sender) {
+                    viewer.displayView(doc);
+                }
+            });
+        }
+
         return nameCol;
     }
 
+    public void displayView(Document asset){
+        String assetName = asset.getFullName();
+        // View needs to put the rendered text in (this) window with 
ADD/BACK/CANCEL buttons above it
+
+        // Create View Panel
+        // Top has ADD/BACK/CANCEL buttons (RHS)
+        ViewPanel panel = new ViewPanel(new AddAsset(assetName));
+
+        // Bottom has the rendered version of the asset (unclickable)
+        panel.displayResource(assetName);
+    }
+
+    private class AddAsset extends ClickListenerString
+    {
+        public AddAsset(String arg) {
+            super(arg);
+        }
+
+        public void onClick(Widget sender) {
+            if (wizard != null){
+                if (cancelListener != null){
+                    cancelListener.onClick(sender);
+                }
+                wizard.addExistingResource(arg);
+            }
+        }
+    }
+
     protected void addTooltip(SourcesMouseEvents item, String text) {
         PopupPanel popup = new PopupPanel(true);
         popup.setStyleName("search-title-description-popup");

Copied: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ResourceAdder.java
 (from rev 5101, 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/ResourceAdder.java)
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/ResourceAdder.java
       2007-09-26 18:39:46 UTC (rev 5101)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ResourceAdder.java
      2007-09-27 17:54:11 UTC (rev 5107)
@@ -0,0 +1,28 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author dward
+ *
+ */
+package org.curriki.gwt.client.search.editor;
+
+public interface ResourceAdder
+{
+    public void addExistingResource(String resourcePageName);
+}
\ No newline at end of file

Copied: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/SearchPanel.java
 (from rev 5101, 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/FindPanel.java)
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/FindPanel.java
   2007-09-26 18:39:46 UTC (rev 5101)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/SearchPanel.java
        2007-09-27 17:54:11 UTC (rev 5107)
@@ -0,0 +1,75 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author dward
+ *
+ */
+package org.curriki.gwt.client.search.editor;
+
+import asquare.gwt.tk.client.ui.ModalDialog;
+import asquare.gwt.tk.client.ui.behavior.TabFocusController;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Widget;
+import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.search.panels.SearcherPanel;
+
+/**
+ *  This is the main panel for the "Search" tool
+ */
+public class SearchPanel extends ModalDialog {
+    protected ResourceAdder wizard;
+    protected Viewer viewer = null;
+
+    public SearchPanel() {
+        initPanel();
+        removeController(getController(TabFocusController.class));
+    }
+
+    public SearchPanel(ResourceAdder addAssetWizard) {
+        removeController(getController(TabFocusController.class));
+        wizard = addAssetWizard;
+        initPanel();
+    }
+
+    public SearchPanel(ResourceAdder addAssetWizard, Viewer viewer) {
+        removeController(getController(TabFocusController.class));
+        wizard = addAssetWizard;
+        this.viewer = viewer;
+        initPanel();
+    }
+
+    private void initPanel() {
+        setCaption(Main.getTranslation("search.search_dialog_title"), false);
+        setWidth("699");
+        setHeight("484");
+        addStyleName("search-cb-panel");
+
+        ClickListener cancelCallback = new ClickListener(){
+            public void onClick(Widget sender){
+                hide();
+            }
+        };
+
+        SearcherPanel search = new SearcherPanel();
+        search.setViewer(viewer);
+        search.setCancelCallback(cancelCallback);
+        search.setResourceAdder(wizard);
+        add(search);
+    }
+}
\ No newline at end of file

Copied: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ViewPanel.java
 (from rev 5101, 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/ViewPanel.java)
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/ViewPanel.java
   2007-09-26 18:39:46 UTC (rev 5101)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/ViewPanel.java
  2007-09-27 17:54:11 UTC (rev 5107)
@@ -0,0 +1,124 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author dward
+ *
+ */
+package org.curriki.gwt.client.search.editor;
+
+import asquare.gwt.tk.client.ui.ModalDialog;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
+import com.google.gwt.user.client.Event;
+import com.google.gwt.user.client.ui.*;
+import org.curriki.gwt.client.CurrikiAsyncCallback;
+import org.curriki.gwt.client.CurrikiService;
+import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.utils.ClickListenerListener;
+
+public class ViewPanel extends VerticalPanel {
+    ScrollPanel view;
+    ModalDialog dialog;
+
+    public ViewPanel(ClickListener act_add) {
+        initPanel(act_add);
+    }
+
+    private void initPanel(ClickListener act_add) {
+        VerticalPanel main = new VerticalPanel();
+        main.addStyleName("view-main");
+        // main.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
+
+        // Top has ADD/BACK/CANCEL buttons (RHS)
+        HorizontalPanel actions = new HorizontalPanel();
+        // actions.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
+        actions.addStyleName("view-actions");
+        Button a = new Button(Main.getTranslation("editor.btt_add"), new 
ClickListenerListener(act_add) {
+            public void onClick(Widget sender) {
+                dialog.hide();
+                act.onClick(sender);
+            }
+        });
+        actions.add(a);
+        Button b = new Button(Main.getTranslation("editor.btt_back"), new 
ClickListener() {
+            public void onClick(Widget sender) {
+                dialog.hide();
+            }
+        });
+        actions.add(b);
+
+        main.add(actions);
+
+        // The rendered view of the asset -- non-clickable
+        view = new ScrollPanel();
+        view.sinkEvents(Event.ONCLICK | Event.ONDBLCLICK | Event.BUTTON_LEFT | 
Event.MOUSEEVENTS);
+        view.addStyleName("view-rendered");
+        //view.setAlwaysShowScrollBars(true);
+        // view.setWidth("600px");
+        // view.setHeight("500px");
+        main.add(view);
+
+        add(main);
+
+        dialog = new ModalDialog();
+        dialog.addController(new ModalDialog.DragStyleController(dialog));
+        dialog.setCaption(Main.getTranslation("find.preview"), false);
+        dialog.add(this);
+
+        //RootPanel.get().add(dialog);
+    }
+
+    public void displayResource(String resourceName){
+        // Fetch resource to display
+        CurrikiService.App.getInstance().getDocumentContent(resourceName, 
true, new displayRenderedContent(view));
+    }
+
+    public class displayRenderedContent extends CurrikiAsyncCallback {
+        Panel view;
+
+        public displayRenderedContent(Panel view){
+            this.view = view;
+        }
+
+        public void onFailure(Throwable throwable) {
+            super.onFailure(throwable);
+        }
+
+        public void onSuccess(Object object) {
+            super.onSuccess(object);
+            String content = (String) object;
+
+            HTML contentHTML = new HTML(content);
+            contentHTML.addStyleName("find-preview-html");
+
+            view.add(contentHTML);
+
+            dialog.show();
+
+            // Now cover the content
+            // Note that the value given by getOffsetHeight() DOES NOT include 
margin + offset like the javadoc says
+            // so we are accounting for an extra 23 (13 Top Offset, 10 Bottom 
Margin) here
+            Element cover = DOM.createDiv();
+            DOM.setStyleAttribute(cover, "position", "relative");
+            DOM.setStyleAttribute(cover, "top", 
"-"+Integer.toString(contentHTML.getOffsetHeight()+23)+"px");
+            DOM.setStyleAttribute(cover, "height", 
Integer.toString(contentHTML.getOffsetHeight()+23)+"px");
+            DOM.appendChild(view.getElement(), cover);
+        }
+    }
+}
\ No newline at end of file

Copied: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/Viewer.java
 (from rev 5101, 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/Viewer.java)
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/widgets/find/Viewer.java
      2007-09-26 18:39:46 UTC (rev 5101)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/editor/Viewer.java
     2007-09-27 17:54:11 UTC (rev 5107)
@@ -0,0 +1,30 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author dward
+ *
+ */
+package org.curriki.gwt.client.search.editor;
+
+import com.xpn.xwiki.gwt.api.client.Document;
+
+public interface Viewer
+{
+    public void displayView(Document asset);
+}
\ No newline at end of file

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/history/SearcherHistory.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/history/SearcherHistory.java
   2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/history/SearcherHistory.java
   2007-09-27 17:54:11 UTC (rev 5107)
@@ -75,6 +75,7 @@
 
     public String createToken(){
         saveState();
+        state.setValue("__go", "1");
         return state.getHistoryToken();
     }
 

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/ResultsPanel.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/ResultsPanel.java
       2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/ResultsPanel.java
       2007-09-27 17:54:11 UTC (rev 5107)
@@ -28,11 +28,15 @@
 import com.google.gwt.user.client.ui.TableListener;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.gwt.user.client.History;
 import com.xpn.xwiki.gwt.api.client.Document;
 import org.curriki.gwt.client.Constants;
 import org.curriki.gwt.client.Main;
 import org.curriki.gwt.client.search.Results;
+import org.curriki.gwt.client.search.editor.Viewer;
+import org.curriki.gwt.client.search.editor.ResourceAdder;
 import org.curriki.gwt.client.search.history.SearcherHistory;
 import org.curriki.gwt.client.search.history.KeepsState;
 import org.curriki.gwt.client.search.history.ClientState;
@@ -56,11 +60,15 @@
     protected LuceneAssetQuery query;
     protected Paginator paginator;
     protected FlexTable g;
+    protected ScrollPanel s;
     protected ResultsColumnDisplayable[] columns = new 
ResultsColumnDisplayable[5];
     protected int columnCount = 4;
     protected int curRow = 0;
     protected Selectable selector;
     protected String sortBy;
+    protected ClickListener cancelCallback;
+    protected Viewer viewer;
+    protected ResourceAdder resourceAdder;
 
     public ResultsPanel(){
         init(false);
@@ -83,11 +91,16 @@
         columns[3] = new ReviewColumn();
         columns[4] = new ActionColumn();
 
+        s = new ScrollPanel();
+        s.addStyleName("find-results-scroller");
+
         g = new FlexTable();
+        g.addStyleName("find-results-table");
         g.addTableListener(this);
         addHeadings();
         
-        add(g);
+        s.add(g);
+        add(s);
     }
 
     public void addHistory(SearcherHistory history){
@@ -95,8 +108,10 @@
     }
 
     public void doSearch() {
-        history.setIgnoreNextChange(true);
-        History.newItem(history.createToken());
+        if (history != null){
+            history.setIgnoreNextChange(true);
+            History.newItem(history.createToken());
+        }
         doRealSearch();
     }
 
@@ -228,4 +243,43 @@
             }
         }
     }
+
+    public void setCancelCallback(ClickListener cancelCallback)
+    {
+        this.cancelCallback = cancelCallback;
+        if (columns[0] instanceof TitleColumn){
+            TitleColumn title = (TitleColumn) columns[0];
+            title.setCancelListener(cancelCallback);
+        }
+        if (columns[4] instanceof ActionColumn){
+            ActionColumn act = (ActionColumn) columns[4];
+            act.setCancelListener(cancelCallback);
+        }
+    }
+
+    public void setViewer(Viewer viewer)
+    {
+        this.viewer = viewer;
+        if (columns[0] instanceof TitleColumn){
+            TitleColumn title = (TitleColumn) columns[0];
+            title.setViewer(viewer);
+        }
+    }
+
+   public void setResourceAdder(ResourceAdder resourceAdder)
+    {
+        this.resourceAdder = resourceAdder;
+        if (columns[0] instanceof TitleColumn){
+            TitleColumn title = (TitleColumn) columns[0];
+            title.setResourceAdder(resourceAdder);
+            if (viewer == null){
+                setViewer(title);
+            }
+        }
+        if (columns[4] instanceof ActionColumn){
+            ActionColumn act = (ActionColumn) columns[4];
+            act.setResourceAdder(resourceAdder);
+            columnCount = 5;
+        }
+    }
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SearcherPanel.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SearcherPanel.java
      2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SearcherPanel.java
      2007-09-27 17:54:11 UTC (rev 5107)
@@ -31,6 +31,8 @@
 import org.curriki.gwt.client.search.queries.Paginator;
 import org.curriki.gwt.client.search.selectors.Selectable;
 import org.curriki.gwt.client.search.history.SearcherHistory;
+import org.curriki.gwt.client.search.editor.Viewer;
+import org.curriki.gwt.client.search.editor.ResourceAdder;
 
 public class SearcherPanel extends VerticalPanel implements ClickListener
 {
@@ -40,6 +42,11 @@
 
     public SearcherPanel()
     {
+        init();
+    }
+
+    public void init()
+    {
         VerticalPanel pTitle = new VerticalPanel();
         pTitle.addStyleName("search-top-titlebar");
         pTitle.add(new Label(Main.getTranslation("search.top_titlebar")));
@@ -88,4 +95,20 @@
             getSearcher().doSearch();
         }
     }
+
+    public void setCancelCallback(ClickListener cancelCallback)
+    {
+        selector.setCancelCallback(cancelCallback);
+        results.setCancelCallback(cancelCallback);
+    }
+
+    public void setViewer(Viewer viewer)
+    {
+        results.setViewer(viewer);
+    }
+
+    public void setResourceAdder(ResourceAdder wizard)
+    {
+        results.setResourceAdder(wizard);
+    }
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorMainPanel.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorMainPanel.java
  2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorMainPanel.java
  2007-09-27 17:54:11 UTC (rev 5107)
@@ -49,8 +49,10 @@
 {
     protected TextInputSelector terms;
     protected Button search;
+    protected Button cancel;
     protected SelectorCollection selectors = new SelectorCollection();
     protected String fieldName;
+    protected ClickListener cancelCallback;
 
     public SelectorMainPanel()
     {
@@ -77,6 +79,12 @@
         search.addStyleName("search-searchbutton");
         search.addClickListener(this);
         add(search);
+
+        cancel = new Button(Main.getTranslation("search.cancel_button"));
+        cancel.addStyleName("search-cancelbutton");
+        cancel.addClickListener(this);
+        cancel.setVisible(false);
+        add(cancel);
     }
 
     public Widget getLabel()
@@ -131,7 +139,14 @@
 
     public void onClick(Widget widget)
     {
-        clickListeners.fireClick(this);
+        if (widget.equals(search)){
+            clickListeners.fireClick(this);
+        }
+        if (widget.equals(cancel)){
+            if (cancelCallback != null){
+                cancelCallback.onClick(widget);
+            }
+        }
     }
 
     private ChangeListenerCollection changeListeners;
@@ -189,4 +204,10 @@
             }
         }
     }
+
+   public void setCancelCallback(ClickListener cancelCallback)
+    {
+        this.cancelCallback = cancelCallback;
+        cancel.setVisible(true);
+    }
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorPanel.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorPanel.java
      2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/search/panels/SelectorPanel.java
      2007-09-27 17:54:11 UTC (rev 5107)
@@ -165,4 +165,12 @@
             clickListeners.remove(clickListener);
         }
     }
+
+    public void setCancelCallback(ClickListener cancelCallback)
+    {
+        main.setCancelCallback(cancelCallback);
+
+        // If we have a cancel callback then we are in CB, so open selectors 
by default
+        bottom.setToggleValue(true);
+    }
 }

Modified: 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/wizard/AddAssetWizard.java
===================================================================
--- 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/wizard/AddAssetWizard.java
    2007-09-27 11:44:08 UTC (rev 5106)
+++ 
xwiki-products/curriki/trunk/gwt/src/main/java/org/curriki/gwt/client/wizard/AddAssetWizard.java
    2007-09-27 17:54:11 UTC (rev 5107)
@@ -22,7 +22,6 @@
 package org.curriki.gwt.client.wizard;
 
 import asquare.gwt.tk.client.ui.BasicPanel;
-import asquare.gwt.tk.client.ui.ModalDialog;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.Event;
 import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -42,14 +41,14 @@
 import org.curriki.gwt.client.CurrikiAsyncCallback;
 import org.curriki.gwt.client.CurrikiService;
 import org.curriki.gwt.client.Main;
+import org.curriki.gwt.client.search.editor.ResourceAdder;
+import org.curriki.gwt.client.search.editor.SearchPanel;
 import org.curriki.gwt.client.editor.Editor;
 import org.curriki.gwt.client.pages.EditPage;
 import org.curriki.gwt.client.utils.ClickListenerDocument;
 import org.curriki.gwt.client.widgets.addfile.AddFileDialog;
 import org.curriki.gwt.client.widgets.addfile.URLEntry;
 import org.curriki.gwt.client.widgets.addfile.VidiTalkUploadComponent;
-import org.curriki.gwt.client.widgets.find.FindPanel;
-import org.curriki.gwt.client.widgets.find.ResourceAdder;
 import org.curriki.gwt.client.widgets.metadata.MetadataEdit;
 import org.curriki.gwt.client.widgets.template.ChooseTemplateDialog;
 import org.curriki.gwt.client.widgets.upload.UploadWidget;
@@ -342,8 +341,8 @@
     // Launch Find Existing resources Dialog
     private void findResource() {
         close();
-        FindPanel findPanel = new FindPanel(this);
-        findPanel.show();
+        SearchPanel search = new SearchPanel(this);
+        search.show();
     }
 
     // Launch From Template Dialog

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to