Mega Code Archive

 
Categories / Java / GWT
 

Menus support all the drag and drop behaviors supported by grids (Smart GWT)

/*  * SmartGWT (GWT for SmartClient)  * Copyright 2008 and beyond, Isomorphic Software, Inc.  *  * SmartGWT is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License version 3  * as published by the Free Software Foundation.  SmartGWT is also  * available under typical commercial license terms - see  * http://smartclient.com/license  * 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.  */ package com.smartgwt.sample.showcase.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.RootPanel; import com.smartgwt.client.data.Record; import com.smartgwt.client.types.DragDataAction; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.ImgProperties; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HStack; import com.smartgwt.client.widgets.menu.Menu; import com.smartgwt.client.widgets.menu.MenuButton; public class Showcase implements EntryPoint {   public void onModuleLoad() {     RootPanel.get().add(getViewPanel());   }   public Canvas getViewPanel() {     Menu menu = new Menu();     ListGridField partSrcField = new ListGridField("partSrc", 20);     partSrcField.setType(ListGridFieldType.IMAGE);     partSrcField.setImgDir("pieces/16/");     ListGridField partNameField = new ListGridField("partName");     partNameField.setWidth(70);     menu.setFields(partSrcField, partNameField);     menu.setData(getRecords());     menu.setSelectionType(SelectionStyle.SINGLE);     menu.setCanDragRecordsOut(true);     menu.setDragDataAction(DragDataAction.MOVE);     MenuButton menuButton = new MenuButton();     menuButton.setTitle("Parts");     menuButton.setMenu(menu);     ListGrid partsGrid = new ListGrid();     partsGrid.setWidth(300);     partsGrid.setCanAcceptDroppedRecords(true);     partsGrid.setCanReorderFields(true);     ListGridField partSrcField2 = new ListGridField("partSrc", 80);     partSrcField2.setType(ListGridFieldType.IMAGE);     partSrcField2.setImgDir("pieces/16/");     ListGridField partNameField2 = new ListGridField("partName");     partNameField2.setWidth(140);     ListGridField partNumField2 = new ListGridField("partNum", 80);     partsGrid.setFields(partSrcField2, partNameField2, partNumField2);     partsGrid.setData(new Record[] {             new PartRecord("Blue", "cube_blue.png", 1),             new PartRecord("Yellow", "cube_yellow.png", 2),     });     HStack layout = new HStack(70);     layout.setHeight(160);     layout.setMembers(menuButton, partsGrid);     return layout;   }   public PartRecord[] getRecords() {     return new PartRecord[]{             new PartRecord("Blue", "cube_blue.png", 1),             new PartRecord("Yellow", "cube_yellow.png", 2),             new PartRecord("Green", "cube_green.png", 3),             new PartRecord("Blue", "cube_blue.png", 4),             new PartRecord("Yellow", "cube_yellow.png", 5),             new PartRecord("Green", "cube_green.png", 6),             new PartRecord("Blue", "cube_blue.png", 7),             new PartRecord("Yellow", "cube_yellow.png", 8),             new PartRecord("Green", "cube_green.png", 9),     }; } } class PartRecord extends ListGridRecord {   public PartRecord() {   }   public PartRecord(String partName, String partSrc, int partNum) {       setPartName(partName);       setPartSrc(partSrc);       setPartNum(partNum);   }   public void setPartName(String partName) {       setAttribute("partName", partName);   }   public void setPartSrc(String partSrc) {       setAttribute("partSrc", partSrc);   }   public void setPartNum(int partNum) {       setAttribute("partNum", partNum);   } } class PartsListGrid extends ListGrid {   PartsListGrid() {       setWidth(150);       setCellHeight(24);       setImageSize(16);       setShowEdges(true);       setBorder("0px");       setBodyStyleName("normal");       setAlternateRecordStyles(true);       setShowHeader(false);       setLeaveScrollbarGap(false);       setEmptyMessage("<br><br>Drag &amp; drop parts here");       ListGridField partSrcField = new ListGridField("partSrc", 24);       partSrcField.setType(ListGridFieldType.IMAGE);       partSrcField.setImgDir("pieces/16/");       ListGridField partNameField = new ListGridField("partName");       ListGridField partNumField = new ListGridField("partNum", 20);       setFields(partSrcField, partNameField, partNumField);       setTrackerImage(new ImgProperties("pieces/24/cubes_all.png", 24, 24));   } }                  SmartGWT.zip( 9,880 k)