Verschiedene Änderungen am ItemSearchWidget (noch nicht abgeschlossen) um die Usabilty zu verbessern.

git-svn-id: https://svn.libreccm.org/ccm/trunk@1713 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-06-18 18:14:21 +00:00
parent 909377f7d9
commit 7d27c686bf
9 changed files with 211 additions and 136 deletions

View File

@ -1099,3 +1099,4 @@ cms.ui.item_search.flat.place=Place
cms.ui.item_search.flat.type=Type
cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=This category can't be deleted.
cms.ui.item_search.flat.filter.submit=Filter

View File

@ -1090,3 +1090,4 @@ cms.ui.item_search.flat.place=Ort
cms.ui.item_search.flat.type=Typ
cms.ui.item_search.flatBrowse=Item ausw\u00e4hlen
cms.ui.category.undeletable=Diese Kategorie kann nicht gel\u00f6scht werden.
cms.ui.item_search.flat.filter.submit=Filtern

View File

@ -38,3 +38,4 @@ cms.ui.item_search.flat.place=Place
cms.ui.item_search.flat.type=Type
cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=
cms.ui.item_search.flat.filter.submit=

View File

@ -569,3 +569,4 @@ cms.ui.item_search.flat.place=Place
cms.ui.item_search.flat.type=Type
cms.ui.item_search.flatBrowse=Select item
cms.ui.category.undeletable=
cms.ui.item_search.flat.filter.submit=

View File

@ -5,18 +5,23 @@ import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.GridPanel;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.Link;
import com.arsdigita.bebop.Page;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.PaginationModelBuilder;
import com.arsdigita.bebop.Paginator;
import com.arsdigita.bebop.RequestLocal;
import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.Table;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.PrintEvent;
import com.arsdigita.bebop.event.PrintListener;
import com.arsdigita.bebop.form.Submit;
import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.BigDecimalParameter;
import com.arsdigita.bebop.parameters.ParameterData;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.bebop.table.TableCellRenderer;
import com.arsdigita.bebop.table.TableColumn;
@ -31,11 +36,14 @@ import com.arsdigita.cms.Folder;
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.Session;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.toolbox.ui.DataQueryBuilder;
import com.arsdigita.toolbox.ui.DataTable;
import com.arsdigita.util.LockableImpl;
import java.math.BigDecimal;
import org.bouncycastle.asn1.ess.ContentIdentifier;
/**
*
@ -44,46 +52,35 @@ import java.math.BigDecimal;
*/
public class ItemSearchFlatBrowsePane extends Form implements FormInitListener, FormProcessListener {
private static final String QUERY_PARAM = "query";
private static final String QUERY_PARAM = "queryStr";
public static final String WIDGET_PARAM = "widget";
public static final String SEARCHWIDGET_PARAM = "searchWidget";
public static final String FILTER_SUBMIT = "filterSubmit";
private final Table resultsTable;
private final Paginator paginator;
private final StringParameter queryParam;
private final Label jsLabel;
public ItemSearchFlatBrowsePane(final String name) {
super(name);
final BoxPanel mainPanel = new BoxPanel(BoxPanel.VERTICAL);
queryParam = new StringParameter(QUERY_PARAM);
final BoxPanel boxPanel = new BoxPanel(BoxPanel.HORIZONTAL);
boxPanel.add(new Label(GlobalizationUtil.globalize("cms.ui.item_search.flat.filter")));
final TextField filter = new TextField(new StringParameter(QUERY_PARAM));
boxPanel.add(filter);
jsLabel = new Label("", false);
jsLabel.addPrintListener(new PrintListener() {
public void prepare(final PrintEvent event) {
final PageState state = event.getPageState();
final String searchWidget = (String) state.getValue(new StringParameter(SEARCHWIDGET_PARAM));
((Label)event.getTarget()).setLabel(String.format(
" <script language=javascript type=\"text/javascript\">"
+ "<!--"
+ "alert(\"test\")"
+ "self.elements['%s'].value='test';"//window.opener.document.%s.value;"
+ "-->"
+ "</script> ",
filter.getName(),
searchWidget));
}
});
boxPanel.add(jsLabel);
add(boxPanel);
boxPanel.add(new Submit(FILTER_SUBMIT, GlobalizationUtil.globalize("cms.ui.item_search.flat.filter.submit")));
mainPanel.add(boxPanel);
resultsTable = new ResultsTable();
add(resultsTable);
paginator = new Paginator((PaginationModelBuilder) resultsTable.getModelBuilder(), 5);
mainPanel.add(paginator);
mainPanel.add(resultsTable);
add(mainPanel);
addInitListener(this);
addProcessListener(this);
@ -96,7 +93,14 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
}
public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final String query = (String) data.get(QUERY_PARAM);
if ((query == null) || query.isEmpty()) {
data.setParameter(QUERY_PARAM,
new ParameterData(queryParam, state.getValue(new StringParameter(ItemSearchPopup.QUERY))));
}
}
public void process(final FormSectionEvent fse) throws FormProcessException {
@ -104,6 +108,7 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
final PageState state = fse.getPageState();
state.setValue(queryParam, data.get(QUERY_PARAM));
state.setValue(new StringParameter(ItemSearchPopup.QUERY), data.get(QUERY_PARAM));
}
private class ResultsTable extends Table {
@ -115,6 +120,7 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
public ResultsTable() {
super();
setEmptyView(new Label(GlobalizationUtil.globalize("cms.ui.item_search.flat.no_items")));
setClassAttr("dataTable");
final TableColumnModel columnModel = getColumnModel();
columnModel.add(new TableColumn(0,
@ -134,10 +140,55 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
}
private class ResultsTableModelBuilder extends LockableImpl implements TableModelBuilder {
private class ResultsTableModelBuilder extends LockableImpl implements TableModelBuilder, PaginationModelBuilder {
//private DataCollection collection;
private RequestLocal collection = new RequestLocal();
public TableModel makeModel(final Table table, final PageState state) {
return new ResultsTableModel(table, state);
if (collection.get(state) == null) {
query(state);
}
((DataCollection) collection.get(state)).setRange(paginator.getFirst(state), paginator.getLast(state) + 1);
return new ResultsTableModel(table, state, (DataCollection) collection.get(state));
}
public int getTotalSize(final Paginator paginator, final PageState state) {
if (collection.get(state) == null) {
query(state);
}
//((DataCollection)collection.get(state)).setRange(paginator.getFirst(state), paginator.getLast(state) + 1);
return (int) ((DataCollection)collection.get(state)).size();
}
public boolean isVisible(PageState state) {
return true;
}
private void query(final PageState state) {
final Session session = SessionManager.getSession();
final BigDecimal typeId = (BigDecimal) state.getValue(new BigDecimalParameter(ItemSearch.SINGLE_TYPE_PARAM));
if (typeId == null) {
collection.set(state, session.retrieve(ContentPage.BASE_DATA_OBJECT_TYPE));
} else {
final ContentType type = new ContentType(typeId);
collection.set(state, session.retrieve(type.getClassName()));
}
final String query = (String) state.getValue(queryParam);
if ((query != null) && !query.isEmpty()) {
((DataCollection)collection.get(state)).addFilter(String.format(
"(lower(%s) like lower('%%%s%%')) or (lower(%s) like lower('%%%s%%'))",
ContentItem.NAME, query,
ContentPage.TITLE, query));
}
((DataCollection) collection.get(state)).addOrder("title asc, name asc");
}
}
@ -148,23 +199,22 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
private final DataCollection collection;
private ContentItem currentItem;
public ResultsTableModel(final Table table, final PageState state) {
public ResultsTableModel(final Table table, final PageState state, final DataCollection collection) {
this.table = table;
final Session session = SessionManager.getSession();
final BigDecimal typeId = (BigDecimal) state.getValue(new BigDecimalParameter(ItemSearch.SINGLE_TYPE_PARAM));
if (typeId == null) {
collection = session.retrieve(ContentPage.BASE_DATA_OBJECT_TYPE);
} else {
final ContentType type = new ContentType(typeId);
collection = session.retrieve(type.getClassName());
}
final String query = (String) state.getValue(queryParam);
if ((query != null) && !query.isEmpty()) {
collection.addFilter(String.format("(lower(%s) like lower('%%%s%%')) or (lower(%s) like lower('%%%s%%'))",
ContentItem.NAME, query,
ContentPage.TITLE, query));
this.collection = collection;
/*
* final Session session = SessionManager.getSession(); final BigDecimal typeId = (BigDecimal)
* state.getValue(new BigDecimalParameter(ItemSearch.SINGLE_TYPE_PARAM)); if (typeId == null) { collection =
* session.retrieve(ContentPage.BASE_DATA_OBJECT_TYPE); } else { final ContentType type = new
* ContentType(typeId); collection = session.retrieve(type.getClassName()); }
*
* final String query = (String) state.getValue(queryParam); if ((query != null) && !query.isEmpty()) {
* collection.addFilter(String.format( "(lower(%s) like lower('%%%s%%')) or (lower(%s) like
* lower('%%%s%%'))", ContentItem.NAME, query, ContentPage.TITLE, query));
}
*/
}
public int getColumnCount() {
@ -227,6 +277,7 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
public Object getKeyAt(final int columnIndex) {
return currentItem.getID();
}
}
private class TitleCellRenderer extends LockableImpl implements TableCellRenderer {
@ -238,6 +289,11 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
final Object key,
final int row,
final int column) {
if (value == null) {
return new Label("???");
}
final Link link = new Link(value.toString(), "");
final String widget = (String) state.getValue(new StringParameter(WIDGET_PARAM));
@ -247,15 +303,13 @@ public class ItemSearchFlatBrowsePane extends Form implements FormInitListener,
link.setOnClick(String.format(
"window.opener.document.%s.value=\"%s\";window.opener.document.%s.value=\"%s\";self.close();return false;",
widget,
key.toString(),
searchWidget,
page.getTitle()));
widget,
key.toString(),
searchWidget,
page.getTitle()));
return link;
}
}
}

View File

@ -43,6 +43,7 @@ import com.arsdigita.bebop.table.TableModel;
import com.arsdigita.bebop.util.BebopConstants;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.Folder;
@ -347,6 +348,7 @@ public class ItemSearchFolderBrowser extends Table {
String widget =
(String) state.getValue(new StringParameter(
ItemSearchPopup.WIDGET_PARAM));
String searchWidget = (String) state.getValue(new StringParameter("searchWidget"));
boolean useURL =
"true".equals(state.getValue(new StringParameter(
ItemSearchPopup.URL_PARAM)));
@ -358,9 +360,9 @@ public class ItemSearchFolderBrowser extends Table {
getDomainObject().getOID())
: id
+ " (" + name + ")";
String title = ((ContentPage) coll.getDomainObject()).getTitle();
Label js = new Label(generateJSLabel(id, widget,
fillString),
Label js = new Label(generateJSLabel(id, widget, searchWidget, fillString, title),
false);
container.add(js);
@ -377,15 +379,13 @@ public class ItemSearchFolderBrowser extends Table {
}
}
private String generateJSLabel(BigDecimal id, String widget, String fill) {
private String generateJSLabel(BigDecimal id, String widget, String searchWidget, String fill, String title) {
StringBuilder buffer = new StringBuilder();
buffer.append(" <script language=javascript> "
+ " <!-- \n"
+ " function fillItem"
+ id
+ "() { \n"
+ " window.opener.document."
+ widget + ".value=\"" + fill + "\";\n");
buffer.append(" <script language=javascript> ");
buffer.append( " <!-- \n");
buffer.append(" function fillItem").append(id).append("() { \n");
buffer.append(" window.opener.document.").append(widget).append(".value=\"").append(fill).append("\";\n");
buffer.append(" window.opener.document.").append(searchWidget).append(".value=\"").append(title).append("\";\n");
// set protocol to 'other' in FCKEditor, else relative url prepended by http://
if (Bebop.getConfig().getDHTMLEditor().equals(
BebopConstants.BEBOP_FCKEDITOR)) {

View File

@ -62,6 +62,7 @@ public class ItemSearchPage extends CMSPage {
private static final CMSConfig s_conf = CMSConfig.getInstance();
private static final boolean LIMIT_TO_CONTENT_SECTION = false;
public static final String CONTENT_SECTION = "section_id";
private boolean showFlatBrowsePane = false;
/**
* Construct a new ItemSearchPage
@ -79,7 +80,9 @@ public class ItemSearchPage extends CMSPage {
addGlobalStateParam(m_sectionId);
m_browse = getBrowsePane();
m_flatBrowse = getFlatBrowsePane();
if (showFlatBrowsePane) {
m_flatBrowse = getFlatBrowsePane();
}
m_search = getSearchPane();
// m_create = getCreatePane();
@ -89,9 +92,8 @@ public class ItemSearchPage extends CMSPage {
}
/**
* Creates, and then caches, the Browse pane. Overriding this
* method to return null will prevent this tab from appearing.
* Note: not implemented yet.
* Creates, and then caches, the Browse pane. Overriding this method to return null will prevent this tab from
* appearing. Note: not implemented yet.
*/
protected ItemSearchBrowsePane getBrowsePane() {
if (m_browse == null) {
@ -101,7 +103,7 @@ public class ItemSearchPage extends CMSPage {
return m_browse;
}
protected ItemSearchFlatBrowsePane getFlatBrowsePane() {
protected ItemSearchFlatBrowsePane getFlatBrowsePane() {
if (m_flatBrowse == null) {
m_flatBrowse = new ItemSearchFlatBrowsePane("flatBrowse");
}
@ -110,8 +112,8 @@ public class ItemSearchPage extends CMSPage {
}
/**
* Creates, and then caches, the Creation pane. Overriding this
* method to return null will prevent this tab from appearing.
* Creates, and then caches, the Creation pane. Overriding this method to return null will prevent this tab from
* appearing.
*/
protected ItemSearchPopup getSearchPane() {
if (m_search == null) {
@ -130,46 +132,48 @@ public class ItemSearchPage extends CMSPage {
//
// return m_create;
// }
/**
* Created the TabbedPane to use for this page. Sets the class
* attribute for this tabbed pane. The default implementation uses a
* {@link com.arsdigita.bebop.TabbedPane} and sets the class
* attribute to "CMS Admin." This implementation also adds tasks,
* content sections, and search panes.
* Created the TabbedPane to use for this page. Sets the class attribute for this tabbed pane. The default
* implementation uses a
* {@link com.arsdigita.bebop.TabbedPane} and sets the class attribute to "CMS Admin." This implementation also adds
* tasks, content sections, and search panes.
*
* Developers can override this method to add only the tabs they
* want, or to add additional tabs after the default CMS tabs are
* added.
* Developers can override this method to add only the tabs they want, or to add additional tabs after the default
* CMS tabs are added.
*/
protected TabbedPane createTabbedPane() {
TabbedPane pane = new TabbedPane();
pane.setClassAttr(XSL_CLASS);
addToPane(pane, "flatBrowse", getFlatBrowsePane());
if (showFlatBrowsePane) {
addToPane(pane, "flatBrowse", getFlatBrowsePane());
}
addToPane(pane, "browse", getBrowsePane());
addToPane(pane, "search", getSearchPane());
// addToPane(pane, "create", getCreatePane());
if(s_conf.getItemSearchDefaultTab().equals("browse")) {
if (s_conf.getItemSearchDefaultTab().equals("browse")) {
pane.setDefaultPane(m_browse);
}
if(s_conf.getItemSearchDefaultTab().equals("search")) {
if (s_conf.getItemSearchDefaultTab().equals("search")) {
pane.setDefaultPane(m_search);
}
if (showFlatBrowsePane) {
pane.setDefaultPane(m_flatBrowse);
}
//pane.addActionListener(this);
// pane.setTabVisible(null, pane, true);
return pane;
}
/**
* Adds the specified component, with the specified tab name, to the
* tabbed pane only if it is not null.
* Adds the specified component, with the specified tab name, to the tabbed pane only if it is not null.
*
* @param pane The pane to which to add the tab
* @param pane The pane to which to add the tab
* @param tabName The name of the tab if it's added
* @param comp The component to add to the pane
* @param comp The component to add to the pane
*/
protected void addToPane(TabbedPane pane, String tabName, Component comp) {
if (comp != null) {
@ -178,8 +182,7 @@ public class ItemSearchPage extends CMSPage {
}
/**
* When a new tab is selected, reset the state of the
* formerly-selected pane.
* When a new tab is selected, reset the state of the formerly-selected pane.
*
* @param event The event fired by selecting a tab
*/
@ -197,8 +200,8 @@ public class ItemSearchPage extends CMSPage {
*/
@Override
public void dispatch(final HttpServletRequest request,
final HttpServletResponse response,
RequestContext actx)
final HttpServletResponse response,
RequestContext actx)
throws IOException, ServletException {
new CMSExcursion() {
@ -220,10 +223,12 @@ public class ItemSearchPage extends CMSPage {
final Document doc = buildDocument(request, response);
final PresentationManager pm =
Templating.getPresentationManager();
Templating.getPresentationManager();
pm.servePage(doc, request, response);
}
}.run();
}
}

View File

@ -34,10 +34,8 @@ import java.math.BigDecimal;
import javax.servlet.http.HttpServletRequest;
/**
* An extension of {@link ItemSearch} for use in a popup
* search window. The display of results is altered so that
* selecting a result closes the window & passes the id of
* the selected item back to the opener.
* An extension of {@link ItemSearch} for use in a popup search window. The display of results is altered so that
* selecting a result closes the window & passes the id of the selected item back to the opener.
*
* @author Stanislav Freidin (sfreidin@arsdigita.com)
* @version $Id: ItemSearchPopup.java 1397 2006-11-29 14:10:38Z sskracic $
@ -45,14 +43,16 @@ import javax.servlet.http.HttpServletRequest;
public class ItemSearchPopup extends ItemSearch {
private static final org.apache.log4j.Logger s_log =
org.apache.log4j.Logger.getLogger(ItemSearchPopup.class);
org.apache.log4j.Logger.getLogger(ItemSearchPopup.class);
public static final String WIDGET_PARAM = "widget";
public static final String URL_PARAM = "useURL";
public static final String QUERY = "query";
/**
* Construct a new <code>ItemSearchPopup</code> component
* Construct a new
* <code>ItemSearchPopup</code> component
*
* @param context the context for the retrieved items. Should be
* @param context the context for the retrieved items. Should be
* {@link ContentItem#DRAFT} or {@link ContentItem#LIVE}
* @param limitToContentSection limit the search to the current content section
*/
@ -66,6 +66,7 @@ public class ItemSearchPopup extends ItemSearch {
super.register(p);
p.addGlobalStateParam(new StringParameter(WIDGET_PARAM));
p.addGlobalStateParam(new StringParameter(URL_PARAM));
p.addGlobalStateParam(new StringParameter(QUERY));
}
@Override
@ -83,6 +84,7 @@ public class ItemSearchPopup extends ItemSearch {
protected Component createResultsPane(QueryGenerator generator) {
return new PopupResultsPane(generator);
}
}
/**
@ -112,38 +114,39 @@ public class ItemSearchPopup extends ItemSearch {
String widget = (String) state.getValue(
new StringParameter(WIDGET_PARAM));
String searchWidget = (String) state.getValue(new StringParameter("searchWidget"));
boolean useURL = "true".equals(
state.getValue(new StringParameter(URL_PARAM)));
String fillString = useURL
? getItemURL(state.getRequest(), doc.getOID())
: doc.getOID().get("id").toString()
+ " (" + doc.getTitle() + ")";
? getItemURL(state.getRequest(), doc.getOID())
: doc.getOID().get("id").toString()
+ " (" + doc.getTitle() + ")";
String title = doc.getTitle();
Element jsLabel = Search.newElement("jsAction");
jsLabel.addAttribute("name", "fillItem"
+ doc.getOID().get("id") + "()");
+ doc.getOID().get("id") + "()");
jsLabel.setText(generateJSLabel((BigDecimal) doc.getOID().get("id"),
widget, fillString));
widget, searchWidget, fillString, title));
element.addContent(jsLabel);
return element;
}
private String generateJSLabel(BigDecimal id, String widget, String fill) {
private String generateJSLabel(BigDecimal id, String widget, String searchWidget, String fill, String title) {
return " <script language=javascript> "
+ " <!-- \n"
+ " function fillItem"
+ id
+ "() { \n"
+ " window.opener.document."
+ widget + ".value=\"" + fill + "\";\n"
+ " self.close(); \n"
+ " return false; \n"
+ " } \n"
+ " --> \n"
+ " </script> ";
+ " <!-- \n"
+ " function fillItem" + id + "() { \n"
+ " window.opener.document." + widget + ".value=\"" + fill + "\";\n"
+ " window.opener.document." + searchWidget + ".value=\"" + title + "\";\n"
+ " self.close(); \n"
+ " return false; \n"
+ " } \n"
+ " --> \n"
+ " </script> ";
}
}
}

View File

@ -85,6 +85,7 @@ public class ItemSearchWidget extends FormSection
//this.setReadOnly();
this.setSize(35);
}
}
private class SearchFragment extends Submit {
@ -105,6 +106,7 @@ public class ItemSearchWidget extends FormSection
|| parent.m_searchComponent.hasQuery(ps))
&& super.isVisible(ps));
}
}
private class ClearFragment extends Submit {
@ -118,6 +120,7 @@ public class ItemSearchWidget extends FormSection
+ ".value = \"\"; return false;");
this.setAttribute("value", "Clear");
}
}
private class LabelFragment extends Label {
@ -129,6 +132,7 @@ public class ItemSearchWidget extends FormSection
super(name, escaping);
this.parent = parent;
}
}
private class ItemSearchFragment extends ItemSearchSectionInline {
@ -156,6 +160,7 @@ public class ItemSearchWidget extends FormSection
|| hasQuery(ps))
&& super.isVisible(ps));
}
}
private class HRLabel extends Label {
@ -170,6 +175,7 @@ public class ItemSearchWidget extends FormSection
|| m_searchComponent.hasQuery(ps))
&& super.isVisible(ps));
}
}
/**
@ -248,13 +254,15 @@ public class ItemSearchWidget extends FormSection
//+ m_item.getName().replace('.', '_')
+ m_selected.getName().replace('.', '_')
+ "Popup(theForm) { \n"
+ " aWindow = window.open(\"" + url + "\", "
+ "\"search\", \"toolbar=no,width=800,height=600,status=no,scrollbars=yes,resize=yes\");\n"
+ " aWindow = window.open(\"" + url + "&query=\" + document.getElementById('" + m_item.getName() + "').value , "
//+ "\"search\", \"toolbar=no,width=800,height=600,status=no,scrollbars=yes,resize=yes\");\n"
+ "\"search\", \"toolbar=yes,width=\" + screen.width*0.5 + \",height=\" + screen.height*0.5 + \",status=no,scrollbars=yes,resize=yes\");\n"
+ "return false;\n"
+ " } \n"
+ " --> \n"
+ " </script> ");
}
});
m_topHR = new HRLabel();
add(m_topHR);
@ -417,4 +425,5 @@ public class ItemSearchWidget extends FormSection
}
}
}
}