r802 - in sandbox3/src/main/java/org/op/client: . gridmenu
Author: vjrj Date: 2008-07-18 14:10:54 +0200 (Fri, 18 Jul 2008) New Revision: 802 Modified: sandbox3/src/main/java/org/op/client/Sandbox.java sandbox3/src/main/java/org/op/client/gridmenu/GridMenu.java sandbox3/src/main/java/org/op/client/gridmenu/GridMenuPanel.java Log: new GridMenuPanel tests Modified: sandbox3/src/main/java/org/op/client/Sandbox.java =================================================================== --- sandbox3/src/main/java/org/op/client/Sandbox.java 2008-07-18 10:24:57 UTC (rev 801) +++ sandbox3/src/main/java/org/op/client/Sandbox.java 2008-07-18 12:10:54 UTC (rev 802) @@ -3,7 +3,9 @@ import org.op.client.gridmenu.GridGroup; import org.op.client.gridmenu.GridItem; import org.op.client.gridmenu.GridMenu; +import org.op.client.gridmenu.GridMenuItem; import org.op.client.gridmenu.GridMenuPanel; +import org.op.client.gridmenu.GridMenuItem.GridMenuItemListener; import org.ourproject.kune.platf.client.View; import com.calclab.suco.client.signal.Slot; @@ -177,6 +179,7 @@ final GridMenuPanel grid = new GridMenuPanel("Nada", true, true); grid.getTopBar().addButton(new ToolbarButton("boton")); grid.getBottomBar().addButton(new ToolbarButton("boton 2")); + grid.setEndIconVisible(false); grid.onDoubleClick(new Slot<String>() { public void onEvent(final String id) { Window.alert("Double click, id: " + id); @@ -197,12 +200,26 @@ item1.setGroup(collab); item1.setTitleHtml("New fulano"); grid.updateItem(item1); + final GridMenuItem menuItem = new GridMenuItem("/arrow_in.png", "operation 1", new GridMenuItemListener() { + public void onClick() { + Window.alert("click"); + } + }); + final GridMenuItem menuItem2 = new GridMenuItem("/arrow_out.png", "operation 2", new GridMenuItemListener() { + public void onClick() { + Window.alert("click"); + } + }); + final GridMenu menu = new GridMenu(); + menu.addMenuItem(menuItem); + menu.addMenuItem(menuItem2); final GridItem item4bis = new GridItem(GridGroup.NoGridGroup, "4", "<a href=''>b2</a>", "fulan2", - "<em>fulane</em>", "<b>k3</b>", "tooltiptitle", "tooptip", new GridMenu()); + "<em>fulane</em>", "<b>k3</b>", "tooltiptitle", "tooptip", menu); grid.removeItem(item4bis); grid.addItem(item4bis); grid.removeItem(item4bis); grid.addItem(item4bis); + return grid; } } Modified: sandbox3/src/main/java/org/op/client/gridmenu/GridMenu.java =================================================================== --- sandbox3/src/main/java/org/op/client/gridmenu/GridMenu.java 2008-07-18 10:24:57 UTC (rev 801) +++ sandbox3/src/main/java/org/op/client/gridmenu/GridMenu.java 2008-07-18 12:10:54 UTC (rev 802) @@ -38,15 +38,15 @@ menu = new Menu(); } - public void addMenuItem(final GridMenuItem menuOpt) { - final Item menuItem = new Item(menuOpt.getTitle()); - menuItem.setIconCls(menuOpt.getIconCls()); - menu.addItem(menuItem); - menuItem.addListener(new BaseItemListenerAdapter() { + public void addMenuItem(final GridMenuItem menuItem) { + final Item item = new Item(menuItem.getTitle()); + item.setIconCls(menuItem.getIconCls()); + menu.addItem(item); + item.addListener(new BaseItemListenerAdapter() { public void onClick(final BaseItem item, final EventObject e) { DeferredCommand.addCommand(new Command() { public void execute() { - menuOpt.getListener().onClick(); + menuItem.getListener().onClick(); } }); } @@ -63,7 +63,9 @@ } public void showMenu(final EventObject e) { - menu.showAt(e.getXY()); + if (menu.getItems().length > 0) { + menu.showAt(e.getXY()); + } } } Modified: sandbox3/src/main/java/org/op/client/gridmenu/GridMenuPanel.java =================================================================== --- sandbox3/src/main/java/org/op/client/gridmenu/GridMenuPanel.java 2008-07-18 10:24:57 UTC (rev 801) +++ sandbox3/src/main/java/org/op/client/gridmenu/GridMenuPanel.java 2008-07-18 12:10:54 UTC (rev 802) @@ -33,7 +33,6 @@ import com.gwtext.client.widgets.grid.GroupingView; import com.gwtext.client.widgets.grid.Renderer; import com.gwtext.client.widgets.grid.RowSelectionModel; -import com.gwtext.client.widgets.grid.event.GridCellListenerAdapter; import com.gwtext.client.widgets.grid.event.GridRowListener; import com.gwtext.client.widgets.layout.FitLayout; @@ -50,7 +49,7 @@ private static final String END_ICON_HTML = "endIconHtmlField"; private static final String TOOLTIP = "tooltipField"; private static final String TOOLTIPTITLE = "tooltipTitleField"; - private final HashMap<Record, GridMenu> menuMap; + private final HashMap<String, GridMenu> menuMap; private final HashMap<String, Record> recordMap; private RecordDef recordDef; private GroupingStore store; @@ -65,6 +64,7 @@ private final String emptyText; private final GridDragConfiguration gridDragConfiguration; private final GridDropConfiguration gridDropConfiguration; + private ColumnModel columnModel; public GridMenuPanel(final String emptyText) { this(emptyText, null, null, false, false); @@ -90,7 +90,7 @@ panel = new Panel(); panel.setBorder(false); panel.setLayout(new FitLayout()); - menuMap = new HashMap<Record, GridMenu>(); + menuMap = new HashMap<String, GridMenu>(); recordMap = new HashMap<String, Record>(); } @@ -102,14 +102,14 @@ if (grid == null) { createGrid(emptyText, gridDragConfiguration, gridDropConfiguration); } - final Record newRecord = recordDef.createRecord(item.getId(), + final String id = item.getId(); + final Record newRecord = recordDef.createRecord(id, new Object[] { item.getGroup().getName(), item.getGroup().getTooltipTitle(), - item.getGroup().getTooltip(), item.getId(), item.getIconHtml(), item.getTitle(), - item.getTitleHtml(), item.getEndIconHtml(), item.getTooltipTitle(), item.getTooltip() }); - recordMap.put(item.getId(), newRecord); + item.getGroup().getTooltip(), id, item.getIconHtml(), item.getTitle(), item.getTitleHtml(), + item.getEndIconHtml(), item.getTooltipTitle(), item.getTooltip() }); + recordMap.put(id, newRecord); store.addSorted(newRecord); - // store.groupBy(GROUP); - menuMap.put(newRecord, item.getMenu()); + menuMap.put(id, item.getMenu()); sort(); doLayoutIfNeeded(); } @@ -187,6 +187,14 @@ } } + public void setEndIconVisible(final boolean visible) { + if (grid == null) { + createGrid(emptyText, gridDragConfiguration, gridDropConfiguration); + } + columnModel.setHidden(2, !visible); + doLayoutIfNeeded(); + } + public void setWidth(final int width) { // Log.info("Grid width: " + width); grid.setWidth(width - 27); @@ -199,7 +207,8 @@ } public void updateItem(final GridItem item) { - final Record record = recordMap.get(item.getId()); + final String id = item.getId(); + final Record record = recordMap.get(id); if (record != null) { record.set(GROUP, item.getGroup().getName()); record.set(GROUP_TOOLTIP_TITLE, item.getGroup().getTooltipTitle()); @@ -211,11 +220,11 @@ record.set(TOOLTIPTITLE, item.getTooltipTitle()); record.set(TOOLTIP, item.getTooltip()); store.commitChanges(); - menuMap.put(record, item.getMenu()); + menuMap.put(id, item.getMenu()); sort(); doLayoutIfNeeded(); } else { - Log.error("Trying to update a non existing item: " + item.getId()); + Log.error("Trying to update a non existing item: " + id); } } @@ -305,21 +314,16 @@ }; final ColumnConfig[] columnsConfigs = new ColumnConfig[] { - new ColumnConfig("Icon", ICON_HTML, 18, false, iconHtmlRenderer, ICON_HTML), - new ColumnConfig("Title", TITLE_HTML, 24, true, titleHtmlRenderer, TITLE_HTML), + new ColumnConfig("Icon", ICON_HTML, 3, false, iconHtmlRenderer, ICON_HTML), + new ColumnConfig("Title", TITLE_HTML, 10, true, titleHtmlRenderer, TITLE_HTML), new ColumnConfig("EndIcon", END_ICON_HTML, 18, false, endIconHtmlRenderer, END_ICON_HTML), new ColumnConfig(GROUP, GROUP, 0) }; - final ColumnModel columnModel = new ColumnModel(columnsConfigs); + columnModel = new ColumnModel(columnsConfigs); grid.setColumnModel(columnModel); grid.setAutoExpandColumn(TITLE_HTML); grid.setSelectionModel(new RowSelectionModel()); - grid.addGridCellListener(new GridCellListenerAdapter() { - @Override - public void onCellDblClick(final GridPanel grid, final int rowIndex, final int colIndex, final EventObject e) { - onDoubleClick(rowIndex); - } - }); + grid.addGridRowListener(new GridRowListener() { public void onRowClick(final GridPanel grid, final int rowIndex, final EventObject e) { showMenu(rowIndex, e); @@ -331,14 +335,15 @@ } public void onRowDblClick(final GridPanel grid, final int rowIndex, final EventObject e) { - Log.debug("Row double click"); onDoubleClick(rowIndex); } private void showMenu(final int rowIndex, final EventObject e) { final Record record = store.getRecordAt(rowIndex); - final GridMenu menu = menuMap.get(record); - menu.showMenu(e); + final GridMenu menu = menuMap.get(record.getAsString(ID)); + if (menu != null) { + menu.showMenu(e); + } } }); grid.stripeRows(true);
participants (1)
-
vjrj