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]

Reply via email to