Author: norman
Date: Wed Aug 19 06:04:32 2009
New Revision: 805671
URL: http://svn.apache.org/viewvc?rev=805671&view=rev
Log:
Add own Hyperlink implementation which allow enable/disable
Added:
labs/hupa/src/main/java/org/apache/hupa/client/widgets/EnableHyperlink.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java?rev=805671&r1=805670&r2=805671&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderPresenter.java
Wed Aug 19 06:04:32 2009
@@ -34,6 +34,7 @@
import org.apache.hupa.client.widgets.EditEvent;
import org.apache.hupa.client.widgets.EditHandler;
+import org.apache.hupa.client.widgets.HasEnable;
import org.apache.hupa.client.widgets.IMAPTreeItem;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.User;
@@ -75,7 +76,11 @@
public interface Display extends WidgetDisplay {
public HasSelectionHandlers<TreeItem> getTree();
public void bindTreeItems(List<IMAPTreeItem> treeList);
- public HasClickHandlers getRenameClick(); }
+ public HasClickHandlers getRenameClick();
+ public HasEnable getRenameEnable();
+ public HasEnable getDeleteEnable();
+ public HasEnable getNewEnable();
+ }
protected void loadTreeItems() {
dispatcher.execute(new FetchFolders(user.getSessionId()), new
DisplayCallback<FetchFoldersResult>(display) {
@@ -88,6 +93,10 @@
@Override
protected void handleSuccess(FetchFoldersResult result)
{
display.bindTreeItems(createTreeNodes(result.getFolders()));
+
+ // disable
+ display.getDeleteEnable().setEnabled(false);
+ display.getRenameEnable().setEnabled(false);
}
@@ -199,6 +208,24 @@
});
+ display.getTree().addSelectionHandler(new
SelectionHandler<TreeItem>() {
+
+ public void onSelection(SelectionEvent<TreeItem> event)
{
+ tItem = (IMAPTreeItem)event.getSelectedItem();
+ folder = (IMAPFolder) tItem.getUserObject();
+ if
(folder.getFullName().equalsIgnoreCase(IMAPFolder.DEFAULT_INBOX)) {
+
display.getDeleteEnable().setEnabled(false);
+
display.getRenameEnable().setEnabled(false);
+ } else {
+
display.getDeleteEnable().setEnabled(true);
+
display.getRenameEnable().setEnabled(true);
+ }
+ }
+
+ });
+
+
+
display.getRenameClick().addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java?rev=805671&r1=805670&r2=805671&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPFolderView.java Wed
Aug 19 06:04:32 2009
@@ -29,8 +29,10 @@
import org.apache.hupa.client.dnd.PagingScrollTableRowDragController;
import org.apache.hupa.client.mvp.IMAPFolderPresenter.Display;
import org.apache.hupa.client.widgets.EditableTree;
+import org.apache.hupa.client.widgets.HasEnable;
import org.apache.hupa.client.widgets.IMAPTreeItem;
import org.apache.hupa.client.widgets.Loading;
+import org.apache.hupa.client.widgets.EnableHyperlink;
import org.apache.hupa.shared.data.IMAPFolder;
import org.apache.hupa.shared.data.IMAPMessage;
import org.apache.hupa.shared.data.User;
@@ -51,7 +53,6 @@
import com.google.gwt.event.logical.shared.HasSelectionHandlers;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.VerticalPanel;
@@ -65,9 +66,9 @@
private VerticalPanel folderPanel = new VerticalPanel();
private SimplePanel panel = new SimplePanel();
private HorizontalPanel folderButtonBar = new HorizontalPanel();
- private Hyperlink newFolderButton = new
Hyperlink(constants.newFolder(),"");
- private Hyperlink renameFolderButton = new
Hyperlink(constants.renameFolder(),"");
- private Hyperlink deleteFolderButton = new
Hyperlink(constants.deleteFolder(),"");
+ private EnableHyperlink newFolderButton = new
EnableHyperlink(constants.newFolder(),"");
+ private EnableHyperlink renameFolderButton = new
EnableHyperlink(constants.renameFolder(),"");
+ private EnableHyperlink deleteFolderButton = new
EnableHyperlink(constants.deleteFolder(),"");
private Loading loader = new Loading(false);
private List<DropController> dropControllerList = new
ArrayList<DropController>();
@@ -85,7 +86,6 @@
folderButtonBar.add(newFolderButton);
folderButtonBar.add(renameFolderButton);
folderButtonBar.add(deleteFolderButton);
- deleteFolderButton.setVisible(false);
panel.add(loader);
this.controller = controllerProvider;
@@ -241,5 +241,17 @@
public HasClickHandlers getRenameClick() {
return renameFolderButton;
}
+
+ public HasEnable getDeleteEnable() {
+ return deleteFolderButton;
+ }
+
+ public HasEnable getNewEnable() {
+ return newFolderButton;
+ }
+
+ public HasEnable getRenameEnable() {
+ return renameFolderButton;
+ }
}
Added:
labs/hupa/src/main/java/org/apache/hupa/client/widgets/EnableHyperlink.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/widgets/EnableHyperlink.java?rev=805671&view=auto
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/widgets/EnableHyperlink.java
(added)
+++ labs/hupa/src/main/java/org/apache/hupa/client/widgets/EnableHyperlink.java
Wed Aug 19 06:04:32 2009
@@ -0,0 +1,113 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you 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.apache.hupa.client.widgets;
+
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
+import com.google.gwt.event.shared.HandlerRegistration;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HasHTML;
+import com.google.gwt.user.client.ui.HasText;
+import com.google.gwt.user.client.ui.Hyperlink;
+import com.google.gwt.user.client.ui.SimplePanel;
+
+/**
+ * Hyperlink which can get enabled/disabled.
+ *
+ */
+public class EnableHyperlink extends Composite implements
HasClickHandlers,HasHTML,HasText, HasEnable{
+ private SimplePanel panel = new SimplePanel();
+ private Hyperlink link;
+ private HTML html;
+
+ public EnableHyperlink(String text, String historyToken) {
+ this(text,false,historyToken);
+ }
+
+ public EnableHyperlink(String text, boolean asHTML, String
historyToken) {
+ link = new Hyperlink(text,asHTML,historyToken);
+ html = new HTML();
+ if (asHTML) {
+ html.setHTML(text);
+ } else {
+ html.setText(text);
+ }
+
+ // mimic hyperlink
+ html.getElement().getStyle().setProperty("textDecoration",
"underline");
+ html.getElement().getStyle().setProperty("color", "grey");
+ panel.setWidget(link);
+ initWidget(panel);
+ }
+ /*
+ * (non-Javadoc)
+ * @see
com.google.gwt.event.dom.client.HasClickHandlers#addClickHandler(com.google.gwt.event.dom.client.ClickHandler)
+ */
+ public HandlerRegistration addClickHandler(ClickHandler handler) {
+ return link.addClickHandler(handler);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.google.gwt.user.client.ui.HasText#getText()
+ */
+ public String getText() {
+ return link.getText();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.google.gwt.user.client.ui.HasText#setText(java.lang.String)
+ */
+ public void setText(String text) {
+ link.setText(text);
+ html.setText(text);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.google.gwt.user.client.ui.HasHTML#getHTML()
+ */
+ public String getHTML() {
+ return link.getHTML();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.google.gwt.user.client.ui.HasHTML#setHTML(java.lang.String)
+ */
+ public void setHTML(String html) {
+ this.html.setHTML(html);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.apache.hupa.client.widgets.HasEnable#setEnabled(boolean)
+ */
+ public void setEnabled(boolean enable) {
+ if (enable) {
+ panel.setWidget(link);
+ } else {
+ panel.setWidget(html);
+ }
+ }
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]