public ExplorerViewImpl() { checkBoxList = new ArrayList<CheckBox>(); selectedFileSet = new TreeSet<String>(); clickHandlerStopPropagation = new ClickHandler() { public void onClick(ClickEvent event) { event.stopPropagation(); } }; DockPanel dockPanel = new DockPanel(); dockPanel.setWidth("100%"); viewPanel = new SimplePanel(dockPanel); initWidget(viewPanel); MenuBar menuBar = new MenuBar(false); dockPanel.add(menuBar, DockPanel.NORTH); menuBar.setHeight("30px"); MenuBar mnbrFile = new MenuBar(true); MenuItem mntmFile = new MenuItem("File", false, mnbrFile); menuBar.addItem(mntmFile); mntmMakeDirectory = new MenuItem( "Make Directory", false, new Command() { public void execute() { new FileDialogBox(presenter, Operation.MAKE_DIRECTORY).center(); } }); mnbrFile.addItem(mntmMakeDirectory); mntmUploadFile = new MenuItem( "Upload", false, new Command() { public void execute() { new FileDialogBox(presenter, Operation.UPLOAD).center(); } }); mnbrFile.addItem(mntmUploadFile); mntmDownloadFile = new MenuItem( "Download", false, new Command() { public void execute() { presenter.downloadFiles(selectedFileSet); } }); mnbrFile.addItem(mntmDownloadFile); mntmDownloadFile.setEnabled(false); mntmDeleteFile = new MenuItem( "Delete", false, new Command() { public void execute() {} }); mnbrFile.addItem(mntmDeleteFile); mntmDeleteFile.setEnabled(false); mntmRenameFile = new MenuItem( "Rename", false, new Command() { public void execute() {} }); mnbrFile.addItem(mntmRenameFile); mntmRenameFile.setEnabled(false); MenuItemSeparator misFile = new MenuItemSeparator(); mnbrFile.addSeparator(misFile); MenuItem mntmCloseVolume = new MenuItem( "Close volume", false, new Command() { public void execute() { presenter.closeVolume(); } }); mnbrFile.addItem(mntmCloseVolume); MenuBar mnbrHelp = new MenuBar(true); MenuItem mntmHelp = new MenuItem("Help", false, mnbrHelp); menuBar.addItem(mntmHelp); MenuItem mntmAbout = new MenuItem( "About", false, new Command() { public void execute() { Window.alert(""); } }); mnbrHelp.addItem(mntmAbout); flowPanel = new FlowPanel(); explorerScrollPanel = new ScrollPanel(flowPanel); dockPanel.add(explorerScrollPanel, DockPanel.CENTER); explorerScrollPanel.sinkEvents(Event.ONCLICK); explorerScrollPanel.addHandler( new ClickHandler() { public void onClick(ClickEvent event) { setAllCheckBoxFalse(); } }, ClickEvent.getType()); explorerScrollPanel.sinkEvents(Event.ONCONTEXTMENU); explorerScrollPanel.addHandler( new ContextMenuHandler() { public void onContextMenu(ContextMenuEvent event) { event.preventDefault(); event.stopPropagation(); FileContextMenu fileContextMenu = new FileContextMenu(presenter, ContextMenuType.BACKGROUND); fileContextMenu.setPopupPosition( event.getNativeEvent().getClientX(), event.getNativeEvent().getClientY()); fileContextMenu.show(); setAllCheckBoxFalse(); } }, ContextMenuEvent.getType()); Tree tree = new Tree(); treeScrollPanel = new ScrollPanel(tree); dockPanel.add(treeScrollPanel, DockPanel.WEST); treeScrollPanel.setWidth("120px"); resizeScrollPanel(); Window.addResizeHandler( new ResizeHandler() { public void onResize(ResizeEvent event) { resizeScrollPanel(); } }); tree.setAnimationEnabled(true); // tree.addOpenHandler(new OpenHandler<TreeItem>() { // public void onOpen(OpenEvent<TreeItem> event) { // TreeItem trtmTarget = event.getTarget(); // String path = getPath(trtmTarget); // for (int i = 0; i < trtmTarget.getChildCount(); i++) { // TreeItem trtmChild = trtmTarget.getChild(i); // String childPath = path + trtmChild.getText(); // presenter.getFiles(trtmChild, childPath); // } // } // }); tree.addSelectionHandler( new SelectionHandler<TreeItem>() { public void onSelection(SelectionEvent<TreeItem> event) { TreeItem selectedItem = event.getSelectedItem(); String path = getPath(selectedItem); selectedItem.setState(true, true); presenter.changeDirectory(path); } }); trtmRoot = new TreeItem(); trtmSelectedItem = trtmRoot; tree.addItem(trtmRoot); trtmRoot.setText("/"); }