/** * Sencha GXT 3.0.0b - Sencha for GWT * Copyright(c) 2007-2012, Sencha, Inc. * licensing@sencha.com * * http://www.sencha.com/products/gxt/license/ */ package com.sencha.gxt.desktopapp.client.filemanager; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.desktopapp.client.filemanager.images.Images; import com.sencha.gxt.desktopapp.client.persistence.FileModel.FileType; import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; import com.sencha.gxt.widget.core.client.toolbar.SeparatorToolItem; import com.sencha.gxt.widget.core.client.toolbar.ToolBar; public class FileManagerToolBar implements IsWidget { private static final String FILE_TYPE = "fileType"; private FileManagerPresenter fileManagerPresenter; private ToolBar toolBar; private TextButton createFolderTextButton; private TextButton createDocumentTextButton; private TextButton createSpreadsheetTextButton; private TextButton createProgramTextButton; private TextButton createBookmarkTextButton; private TextButton collapseTextButton; private TextButton expandTextButton; private TextButton editNameTextButton; private TextButton openTextButton; private TextButton deleteTextButton; private SelectHandler createSelectHandler; private SelectHandler expandSelectHandler; private SelectHandler collapseSelectHandler; private SelectHandler editNameSelectHandler; private SelectHandler openSelectHandler; private SelectHandler deleteSelectHandler; public FileManagerToolBar(FileManagerPresenter fileManagerPresenter) { this.fileManagerPresenter = fileManagerPresenter; } public Widget asWidget() { return getToolBar(); } public void setButtonEnabledState() { boolean isEnableCreate = getPresenter().isEnableCreate(); boolean isEnableOpen = getPresenter().isEnableOpen(); boolean isEnableDelete = getPresenter().isEnableDelete(); boolean isEnableEditName = getPresenter().isEnableEditName(); getCreateFolderTextButton().setEnabled(isEnableCreate); getCreateDocumentTextButton().setEnabled(isEnableCreate); getCreateSpreadsheetTextButton().setEnabled(isEnableCreate); getCreateProgramTextButton().setEnabled(isEnableCreate); getCreateBookmarkTextButton().setEnabled(isEnableCreate); getExpandTextButton().setEnabled(isEnableCreate); getCollapseTextButton().setEnabled(isEnableCreate); getEditNameTextButton().setEnabled(isEnableEditName); getOpenTextButton().setEnabled(isEnableOpen); getDeleteTextButton().setEnabled(isEnableDelete); } protected FileManagerPresenter getPresenter() { return fileManagerPresenter; } private SelectHandler getCollapseSelectHandler() { if (collapseSelectHandler == null) { collapseSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { getPresenter().onCollapse(); } }; } return collapseSelectHandler; } private TextButton getCollapseTextButton() { if (collapseTextButton == null) { collapseTextButton = new TextButton(); collapseTextButton.setToolTip("Collapse"); collapseTextButton.setIcon(Images.getImageResources().arrow_in()); collapseTextButton.addSelectHandler(getCollapseSelectHandler()); } return collapseTextButton; } private TextButton getCreateBookmarkTextButton() { if (createBookmarkTextButton == null) { createBookmarkTextButton = new TextButton(); createBookmarkTextButton.setToolTip("New Bookmark"); createBookmarkTextButton.setIcon(Images.getImageResources().world_add()); createBookmarkTextButton.setData(FILE_TYPE, FileType.BOOKMARK); createBookmarkTextButton.addSelectHandler(getCreateSelectHandler()); } return createBookmarkTextButton; } private TextButton getCreateDocumentTextButton() { if (createDocumentTextButton == null) { createDocumentTextButton = new TextButton(); createDocumentTextButton.setToolTip("New Document"); createDocumentTextButton.setIcon(Images.getImageResources().page_white_add()); createDocumentTextButton.setData(FILE_TYPE, FileType.DOCUMENT); createDocumentTextButton.addSelectHandler(getCreateSelectHandler()); } return createDocumentTextButton; } private TextButton getCreateFolderTextButton() { if (createFolderTextButton == null) { createFolderTextButton = new TextButton(); createFolderTextButton.setToolTip("New Folder"); createFolderTextButton.setIcon(Images.getImageResources().folder_add()); createFolderTextButton.setData(FILE_TYPE, FileType.FOLDER); createFolderTextButton.addSelectHandler(getCreateSelectHandler()); } return createFolderTextButton; } private TextButton getCreateProgramTextButton() { if (createProgramTextButton == null) { createProgramTextButton = new TextButton(); createProgramTextButton.setToolTip("New Program"); createProgramTextButton.setIcon(Images.getImageResources().script_add()); createProgramTextButton.setData(FILE_TYPE, FileType.PROGRAM); createProgramTextButton.addSelectHandler(getCreateSelectHandler()); } return createProgramTextButton; } private SelectHandler getCreateSelectHandler() { if (createSelectHandler == null) { createSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { FileType fileType = ((TextButton) event.getSource()).<FileType> getData(FILE_TYPE); getPresenter().onCreate(fileType); } }; } return createSelectHandler; } private TextButton getCreateSpreadsheetTextButton() { if (createSpreadsheetTextButton == null) { createSpreadsheetTextButton = new TextButton(); createSpreadsheetTextButton.setToolTip("New Spreadsheet"); createSpreadsheetTextButton.setIcon(Images.getImageResources().table_add()); createSpreadsheetTextButton.setData(FILE_TYPE, FileType.SPREADSHEET); createSpreadsheetTextButton.addSelectHandler(getCreateSelectHandler()); } return createSpreadsheetTextButton; } private SelectHandler getDeleteSelectHandler() { if (deleteSelectHandler == null) { deleteSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { getPresenter().onDelete(); } }; } return deleteSelectHandler; } private TextButton getDeleteTextButton() { if (deleteTextButton == null) { deleteTextButton = new TextButton(); deleteTextButton.setToolTip("Delete"); deleteTextButton.setIcon(Images.getImageResources().bin_closed()); deleteTextButton.addSelectHandler(getDeleteSelectHandler()); } return deleteTextButton; } private SelectHandler getEditNameSelectHandler() { if (editNameSelectHandler == null) { editNameSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { getPresenter().onEditName(); } }; } return editNameSelectHandler; } private TextButton getEditNameTextButton() { if (editNameTextButton == null) { editNameTextButton = new TextButton(); editNameTextButton.setToolTip("Edit Name"); editNameTextButton.setIcon(Images.getImageResources().textfield_rename()); editNameTextButton.addSelectHandler(getEditNameSelectHandler()); } return editNameTextButton; } private SelectHandler getExpandSelectHandler() { if (expandSelectHandler == null) { expandSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { getPresenter().onExpand(); } }; } return expandSelectHandler; } private TextButton getExpandTextButton() { if (expandTextButton == null) { expandTextButton = new TextButton(); expandTextButton.setToolTip("Expand"); expandTextButton.addSelectHandler(getExpandSelectHandler()); expandTextButton.setIcon(Images.getImageResources().arrow_out()); } return expandTextButton; } private SelectHandler getOpenSelectHandler() { if (openSelectHandler == null) { openSelectHandler = new SelectHandler() { @Override public void onSelect(SelectEvent event) { getPresenter().onOpen(); } }; } return openSelectHandler; } private TextButton getOpenTextButton() { if (openTextButton == null) { openTextButton = new TextButton(); openTextButton.setToolTip("Open"); openTextButton.setIcon(Images.getImageResources().bullet_go()); openTextButton.addSelectHandler(getOpenSelectHandler()); } return openTextButton; } private Widget getToolBar() { if (toolBar == null) { toolBar = new ToolBar(); toolBar.add(getCreateFolderTextButton()); toolBar.add(new SeparatorToolItem()); toolBar.add(getCreateDocumentTextButton()); toolBar.add(getCreateSpreadsheetTextButton()); toolBar.add(getCreateProgramTextButton()); toolBar.add(getCreateBookmarkTextButton()); toolBar.add(new SeparatorToolItem()); toolBar.add(getExpandTextButton()); toolBar.add(getCollapseTextButton()); toolBar.add(new SeparatorToolItem()); toolBar.add(getEditNameTextButton()); toolBar.add(new SeparatorToolItem()); toolBar.add(getOpenTextButton()); toolBar.add(new SeparatorToolItem()); toolBar.add(getDeleteTextButton()); } return toolBar; } }