Java tutorial
/* * Copyright 2011 Yegor Fadeev, firas * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.raccoon.filemanager.client.ui; import org.raccoon.filemanager.shared.FileType; import org.raccoon.filemanager.shared.FileWrapper; import com.google.gwt.core.client.GWT; import com.google.gwt.event.logical.shared.OpenEvent; import com.google.gwt.event.logical.shared.OpenHandler; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.uibinder.client.UiConstructor; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Tree; import com.google.gwt.user.client.ui.TreeItem; /** * * @author Yegor Fadeev * @author firas */ public class FileSystemTreeWidget extends Composite { private Tree tree; private String treeTitle; public @UiConstructor FileSystemTreeWidget(String treeTitle) { this.treeTitle = treeTitle; tree = createFileSystemTree(); initWidget(tree); } private Tree createFileSystemTree() { tree = new Tree(); tree.setAnimationEnabled(true); TreeItem tItem = new TreeItem(treeTitle); tItem.addItem("Loading..."); tree.addOpenHandler(getOpenHandler()); tree.addSelectionHandler(getSelectionHandler()); tree.addItem(tItem); tree.setSelectedItem(tItem, true); return tree; } private OpenHandler<TreeItem> getOpenHandler() { return new OpenHandler<TreeItem>() { @Override public void onOpen(OpenEvent<TreeItem> oe) { GWT.log("Tree Item openned"); TreeItem targetItem = oe.getTarget(); // stupid but would be usefull. if (targetItem.getChildCount() > 1) { return; } String path = findPath(targetItem); //fetchTreeItems(targetItem, path); } }; } private SelectionHandler<TreeItem> getSelectionHandler() { return new SelectionHandler<TreeItem>() { @Override public void onSelection(SelectionEvent<TreeItem> se) { TreeItem selectedItem = se.getSelectedItem(); String path = findPath(selectedItem); //fetchTableItems(path); //footer.setHTML("Current path : "+path); } }; } private String findPath(TreeItem item) { TreeItem parent = item.getParentItem(); if (parent == null) { return "/"; } else { return findPath(parent) + "/" + item.getText(); } } private void expandTreeItem(TreeItem father, FileWrapper[] files) { if (files != null) { father.removeItems(); for (FileWrapper file : files) { if (file.getKind() == FileType.DIR) { TreeItem newItem = new TreeItem(file.getName()); father.addItem(newItem); newItem.addItem("Loading..."); } } } } }