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