[hg] main-silver: issue controller cleanup

  • From: Tomas Stupka < >
  • To:
  • Subject: [hg] main-silver: issue controller cleanup
  • Date: Thu, 10 Oct 2013 18:54:39 -0700

changeset 409096bd7d20 in main-silver ((none))
details: http://hg.netbeans.org/main-silver/rev/409096bd7d20
description:
        issue controller cleanup

diffstat:

 
bugtracking.bridge/test/unit/src/org/netbeans/modules/bugtracking/vcs/HookIssue.java
                  |   18 +-
 
bugtracking.kenai/test/unit/src/org/netbeans/modules/bugtracking/kenai/IssueAccessorTest.java
         |   22 +-
 bugtracking/src/org/netbeans/modules/bugtracking/IssueImpl.java              
                         |    4 +-
 
bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingController.java
                       |  136 ----------
 bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueController.java    
                         |   81 +++++
 bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueProvider.java      
                         |    2 +-
 
bugtracking/src/org/netbeans/modules/bugtracking/ui/issue/IssueTopComponent.java
                      |    6 +-
 bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssue.java    
                         |    4 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssueProvider.java
                     |    4 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestConnector.java
                  |    4 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestIssue.java
                      |   11 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/cache/CacheTest.java
                       |    2 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/issuetable/QueryTableCellRendererTest.java
 |    2 +-
 
bugtracking/test/unit/src/org/netbeans/modules/bugtracking/ui/query/KenaiTestHidden.java
              |    2 +-
 bugzilla/src/org/netbeans/modules/bugzilla/BugzillaIssueProvider.java        
                         |    4 +-
 bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssue.java          
                         |    8 +-
 
bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssueController.java 
                        |   98 +++++++
 bugzilla/src/org/netbeans/modules/bugzilla/issue/IssueController.java        
                         |  107 -------
 
bugzilla/test/unit/src/org/netbeans/modules/bugzilla/query/IssueTableTest.java
                        |    2 +-
 jira/src/org/netbeans/modules/jira/JiraIssueProvider.java                    
                         |    4 +-
 jira/src/org/netbeans/modules/jira/issue/NbJiraIssue.java                    
                         |   17 +-
 jira/test/unit/src/org/netbeans/modules/jira/query/IssueTableTest.java       
                         |    2 +-
 localtasks/src/org/netbeans/modules/localtasks/IssueProviderImpl.java        
                         |    4 +-
 localtasks/src/org/netbeans/modules/localtasks/task/LocalTask.java           
                         |    4 +-
 localtasks/src/org/netbeans/modules/localtasks/task/TaskController.java      
                         |   16 +-
 odcs.tasks/src/org/netbeans/modules/odcs/tasks/ODCSIssueProvider.java        
                         |    4 +-
 odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssue.java          
                         |    4 +-
 
odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssueController.java 
                        |   15 +-
 28 files changed, 247 insertions(+), 340 deletions(-)

diffs (1079 lines):

diff --git 
a/bugtracking.bridge/test/unit/src/org/netbeans/modules/bugtracking/vcs/HookIssue.java
 
b/bugtracking.bridge/test/unit/src/org/netbeans/modules/bugtracking/vcs/HookIssue.java
--- 
a/bugtracking.bridge/test/unit/src/org/netbeans/modules/bugtracking/vcs/HookIssue.java
+++ 
b/bugtracking.bridge/test/unit/src/org/netbeans/modules/bugtracking/vcs/HookIssue.java
@@ -48,7 +48,7 @@
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 import org.netbeans.modules.bugtracking.TestIssue;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 import org.openide.util.HelpCtx;
 
@@ -61,7 +61,7 @@
 
     boolean closed;
     String comment;
-    private BugtrackingController controller;
+    private IssueController controller;
 
     static HookIssue getInstance() {
         if(instance == null) {
@@ -121,9 +121,9 @@
     }
 
     @Override
-    public BugtrackingController getController() {
+    public IssueController getController() {
         if(controller == null) {        
-            controller = new BugtrackingController() {
+            controller = new IssueController() {
                 private JComponent panel = new JPanel();                
                 @Override
                 public JComponent getComponent() {
@@ -133,14 +133,8 @@
                 public HelpCtx getHelpCtx() {
                     throw new UnsupportedOperationException("Not supported 
yet.");
                 }
-                @Override
-                public boolean isValid() {
-                    throw new UnsupportedOperationException("Not supported 
yet.");
-                }
-                @Override
-                public void applyChanges() throws IOException {
-                    throw new UnsupportedOperationException("Not supported 
yet.");
-                }
+                @Override public void opened() { }
+                @Override public void closed() { }
             };
         }
         return controller;
diff --git 
a/bugtracking.kenai/test/unit/src/org/netbeans/modules/bugtracking/kenai/IssueAccessorTest.java
 
b/bugtracking.kenai/test/unit/src/org/netbeans/modules/bugtracking/kenai/IssueAccessorTest.java
--- 
a/bugtracking.kenai/test/unit/src/org/netbeans/modules/bugtracking/kenai/IssueAccessorTest.java
+++ 
b/bugtracking.kenai/test/unit/src/org/netbeans/modules/bugtracking/kenai/IssueAccessorTest.java
@@ -233,43 +233,51 @@
         public IATestIssue(String name) {
             this.name = name;
         }
+        @Override
         public String getDisplayName() {
             return name;
         }
+        @Override
         public String getTooltip() {
             return name;
         }
+        @Override
         public boolean isNew() {
             return false;
         }
+        @Override
         public boolean isFinished() {
             return false;
         }
+        @Override
         public String getSummary() {
             return "This is" + name;
         }
+        @Override
         public String getID() {
             return name;
         }
-        public BugtrackingController getController() {
+        @Override
+        public IssueController getController() {
             return controller;
         }
+        @Override
         public boolean refresh() {return true;}
         public Map<String, String> getAttributes() {return 
Collections.EMPTY_MAP;}
     }
 
-    private static class TestIssueController extends BugtrackingController {
-        private JPanel panel = new JPanel();
+    private static class TestIssueController implements IssueController {
+        private final JPanel panel = new JPanel();
+        @Override
         public JComponent getComponent() {
             return panel;
         }
+        @Override
         public HelpCtx getHelpCtx() {
             return new HelpCtx(this.getClass());
         }
-        public boolean isValid() {
-            return true;
-        }
-        public void applyChanges() throws IOException { }
+        @Override public void opened() { }
+        @Override public void closed() { }
     }
 
     @BugtrackingConnector.Registration(
diff --git a/bugtracking/src/org/netbeans/modules/bugtracking/IssueImpl.java 
b/bugtracking/src/org/netbeans/modules/bugtracking/IssueImpl.java
--- a/bugtracking/src/org/netbeans/modules/bugtracking/IssueImpl.java
+++ b/bugtracking/src/org/netbeans/modules/bugtracking/IssueImpl.java
@@ -50,7 +50,7 @@
 import org.netbeans.modules.bugtracking.api.Issue;
 import org.netbeans.modules.bugtracking.team.spi.TeamIssueProvider;
 import org.netbeans.modules.bugtracking.team.spi.OwnerInfo;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssuePriorityInfo;
 import org.netbeans.modules.bugtracking.spi.IssuePriorityProvider;
 import org.netbeans.modules.bugtracking.spi.IssueScheduleInfo;
@@ -188,7 +188,7 @@
         }
     }
 
-    public BugtrackingController getController() {
+    public IssueController getController() {
         return issueProvider.getController(data);
     }    
     
diff --git 
a/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingController.java
 
b/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingController.java
deleted file mode 100644
--- 
a/bugtracking/src/org/netbeans/modules/bugtracking/spi/BugtrackingController.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
- *
- * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
- * Other names may be trademarks of their respective owners.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common
- * Development and Distribution License("CDDL") (collectively, the
- * "License"). You may not use this file except in compliance with the
- * License. You can obtain a copy of the License at
- * http://www.netbeans.org/cddl-gplv2.html
- * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
- * specific language governing permissions and limitations under the
- * License.  When distributing the software, include this License Header
- * Notice in each file and include the License file at
- * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the GPL Version 2 section of the License file that
- * accompanied this code. If applicable, add the following below the
- * License Header, with the fields enclosed by brackets [] replaced by
- * your own identifying information:
- * "Portions Copyrighted [year] [name of copyright owner]"
- *
- * If you wish your version of this file to be governed by only the CDDL
- * or only the GPL Version 2, indicate your decision by adding
- * "[Contributor] elects to include this software in this distribution
- * under the [CDDL or GPL Version 2] license." If you do not indicate a
- * single choice of license, a recipient has the option to distribute
- * your version of this file under either the CDDL, the GPL Version 2 or
- * to extend the choice of license to its licensees as provided above.
- * However, if you add GPL Version 2 code and therefore, elected the GPL
- * Version 2 license, then the option applies only if the new code is
- * made subject to such option by the copyright holder.
- *
- * Contributor(s):
- *
- * Portions Copyrighted 2008 Sun Microsystems, Inc.
- */
-
-package org.netbeans.modules.bugtracking.spi;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.IOException;
-import javax.swing.JComponent;
-import org.openide.util.HelpCtx;
-
-/**
- *
- * @author Tomas Stupka
- */
-public abstract class BugtrackingController {
-
-    /**
-     * Some data in the controllers component where changed
-     */
-    public static final String EVENT_COMPONENT_DATA_CHANGED   = 
"bugtracking.data.changed";   // NOI18N
-
-    private final PropertyChangeSupport support = new 
PropertyChangeSupport(this);
-
-    /**
-     * Returns a visual component representing the bugtracking entity this 
controller is meant for
-     * e.g. Repository, Query, ...
-     * @return a visual component representing a bugtracking entity
-     */
-    public abstract JComponent getComponent() ;
-
-    /**
-     * Returns the help context associated with this controllers visual 
component
-     * @return
-     */
-    public abstract HelpCtx getHelpCtx();
-
-    /**
-     * Returns true if data in this controllers visual component are valid
-     * @return
-     */
-    public abstract boolean isValid();
-
-    /**
-     * Should return a message in case the controller isn't valid
-     * @return
-     */
-    public String getErrorMessage() {
-        return null;
-    }
-    
-    /**
-     * Is called when the changes made in the
-     * controllers visual component are confirmed
-     */
-    public abstract void applyChanges() throws IOException; 
-
-    /**
-     * Called when this controller was openened
-     * @deprecated 
-     */
-    public void opened() {
-
-    }
-
-    /**
-     * Called when this controller was closed
-     * @deprecated 
-     */
-    public void closed() {
-
-    }
-
-    /**
-     * Registers a PropertyChangeListener
-     * @param l
-     */
-    public void addPropertyChangeListener(PropertyChangeListener l) {
-        support.addPropertyChangeListener(l);
-    }
-
-    /**
-     * Unregisters a PropertyChangeListener
-     * @param l
-     */
-    public void removePropertyChangeListener(PropertyChangeListener l) {
-        support.removePropertyChangeListener(l);
-    }
-
-    /**
-     * Signals a change in this controlers visual components data
-     */
-    protected void fireDataChanged() {
-        support.firePropertyChange(EVENT_COMPONENT_DATA_CHANGED, null, null);
-    }
-
-}
diff --git 
a/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueController.java 
b/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueController.java
new file mode 100644
--- /dev/null
+++ 
b/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueController.java
@@ -0,0 +1,81 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.  When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2008 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.bugtracking.spi;
+
+import javax.swing.JComponent;
+import org.openide.util.HelpCtx;
+
+/**
+* Provides access to an {@link Issues}-s UI.
+ * <br/>
+ * Every Issue is expected to provide at least some visual expected to. 
+ * Typically this would be an Issue editor making it possible to create and 
+ * modify issues.
+ * 
+ * @author Tomas Stupka
+ */
+public interface IssueController {
+
+    /**
+     * Returns a visual Issue component.
+     * @return a visual component representing an Issue
+     */
+    public JComponent getComponent();
+
+    /**
+     * Returns the help context associated with this controllers visual 
component
+     * @return
+     */
+    public HelpCtx getHelpCtx();
+
+    /**
+     * Called when the component returned by this controller was opened.
+     */
+    public void opened();
+
+    /**
+     * Called when the component returned by this controller was closed.
+     */
+    public void closed();
+
+}
diff --git 
a/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueProvider.java 
b/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueProvider.java
--- a/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueProvider.java
+++ b/bugtracking/src/org/netbeans/modules/bugtracking/spi/IssueProvider.java
@@ -155,7 +155,7 @@
      * XXX we don't need this. use get component instead and get rid of the 
BugtrackingController
      * @return
      */
-    public abstract BugtrackingController getController(I data);
+    public abstract IssueController getController(I data);
 
     public abstract void removePropertyChangeListener(I data, 
PropertyChangeListener listener);
 
diff --git 
a/bugtracking/src/org/netbeans/modules/bugtracking/ui/issue/IssueTopComponent.java
 
b/bugtracking/src/org/netbeans/modules/bugtracking/ui/issue/IssueTopComponent.java
--- 
a/bugtracking/src/org/netbeans/modules/bugtracking/ui/issue/IssueTopComponent.java
+++ 
b/bugtracking/src/org/netbeans/modules/bugtracking/ui/issue/IssueTopComponent.java
@@ -70,7 +70,7 @@
 import org.netbeans.modules.bugtracking.APIAccessor;
 import org.netbeans.modules.bugtracking.BugtrackingManager;
 import org.netbeans.modules.bugtracking.RepositoryRegistry;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.IssueImpl;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.RepositoryImpl;
@@ -330,7 +330,7 @@
         }
     }
 
-    private BugtrackingController controller;
+    private IssueController controller;
     private void onRepoSelected() {
         if(prepareTask != null) {
             prepareTask.cancel();
@@ -555,7 +555,7 @@
         }
     }
 
-    private BugtrackingController getController() {
+    private IssueController getController() {
         return issue.getController();
     }
 
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssue.java 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssue.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssue.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssue.java
@@ -43,7 +43,7 @@
 
 import java.beans.PropertyChangeListener;
 import java.io.File;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 import org.openide.nodes.Node;
 
@@ -89,7 +89,7 @@
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
-    public BugtrackingController getController() {
+    public IssueController getController() {
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssueProvider.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssueProvider.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssueProvider.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/TestIssueProvider.java
@@ -44,7 +44,7 @@
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import org.netbeans.modules.bugtracking.issuetable.IssueNode;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 import org.openide.nodes.Node;
@@ -105,7 +105,7 @@
     }
 
     @Override
-    public BugtrackingController getController(TestIssue data) {
+    public IssueController getController(TestIssue data) {
         return data.getController();
     }
 
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestConnector.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestConnector.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestConnector.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestConnector.java
@@ -53,7 +53,7 @@
 import org.netbeans.modules.bugtracking.TestKit;
 import static org.netbeans.modules.bugtracking.api.APITestKit.getAPIRepo;
 import org.netbeans.modules.bugtracking.spi.BugtrackingConnector;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.BugtrackingFactory;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.spi.QueryController;
@@ -318,7 +318,7 @@
         }
 
         @Override
-        public BugtrackingController getController(APITestIssue data) {
+        public IssueController getController(APITestIssue data) {
             return data.getController();
         }
 
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestIssue.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestIssue.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestIssue.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/api/APITestIssue.java
@@ -48,7 +48,7 @@
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 import org.netbeans.modules.bugtracking.TestIssue;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 import org.openide.util.HelpCtx;
@@ -75,7 +75,7 @@
     String attachedPatchDesc;
     boolean idFinished;
     File attachedFile;
-    private BugtrackingController controller;
+    private IssueController controller;
     private final APITestRepository repo;
     private String summary;
     private String description;
@@ -146,9 +146,9 @@
     }
 
     @Override
-    public BugtrackingController getController() {
+    public IssueController getController() {
         if(controller == null) {
-            controller = new BugtrackingController() {
+            controller = new IssueController() {
                 @Override
                 public void opened() {
                     wasOpened = true;
@@ -162,8 +162,7 @@
                     return panel;
                 }
                 @Override public HelpCtx getHelpCtx() { return null; }
-                @Override public boolean isValid() { return true; }
-                @Override public void applyChanges() throws IOException { }
+                @Override public void closed() { }
             };
         }
         return controller;
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/cache/CacheTest.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/cache/CacheTest.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/cache/CacheTest.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/cache/CacheTest.java
@@ -517,7 +517,7 @@
         }
 
         @Override
-        public BugtrackingController getController(CTestIssue data) {
+        public IssueController getController(CTestIssue data) {
             return data.getController();
         }
 
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/issuetable/QueryTableCellRendererTest.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/issuetable/QueryTableCellRendererTest.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/issuetable/QueryTableCellRendererTest.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/issuetable/QueryTableCellRendererTest.java
@@ -64,7 +64,7 @@
 import org.netbeans.modules.bugtracking.QueryImpl;
 import org.netbeans.modules.bugtracking.RepositoryImpl;
 import 
org.netbeans.modules.bugtracking.issuetable.QueryTableCellRenderer.TableCellStyle;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.issuetable.IssueNode.IssueProperty;
 import org.netbeans.modules.bugtracking.spi.*;
 import org.netbeans.modules.bugtracking.cache.IssueCache;
diff --git 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/ui/query/KenaiTestHidden.java
 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/ui/query/KenaiTestHidden.java
--- 
a/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/ui/query/KenaiTestHidden.java
+++ 
b/bugtracking/test/unit/src/org/netbeans/modules/bugtracking/ui/query/KenaiTestHidden.java
@@ -58,7 +58,7 @@
 import org.netbeans.junit.NbTestCase;
 import org.netbeans.modules.bugtracking.LogHandler;
 import org.netbeans.modules.bugtracking.spi.BugtrackingConnector;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.team.spi.RepositoryUser;
 import org.netbeans.modules.bugtracking.cache.IssueCache;
diff --git 
a/bugzilla/src/org/netbeans/modules/bugzilla/BugzillaIssueProvider.java 
b/bugzilla/src/org/netbeans/modules/bugzilla/BugzillaIssueProvider.java
--- a/bugzilla/src/org/netbeans/modules/bugzilla/BugzillaIssueProvider.java
+++ b/bugzilla/src/org/netbeans/modules/bugzilla/BugzillaIssueProvider.java
@@ -40,9 +40,9 @@
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.util.List;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.team.spi.TeamIssueProvider;
 import org.netbeans.modules.bugtracking.team.spi.OwnerInfo;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
 import org.netbeans.modules.bugzilla.issue.BugzillaIssue;
 import org.netbeans.modules.bugzilla.repository.IssueField;
 
@@ -104,7 +104,7 @@
     }
 
     @Override
-    public BugtrackingController getController(BugzillaIssue data) {
+    public IssueController getController(BugzillaIssue data) {
         return data.getController();
     }
 
diff --git 
a/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssue.java 
b/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssue.java
--- a/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssue.java
+++ b/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssue.java
@@ -76,7 +76,7 @@
 import org.eclipse.mylyn.tasks.core.data.TaskOperation;
 import org.netbeans.modules.bugzilla.Bugzilla;
 import org.netbeans.modules.bugtracking.issuetable.IssueNode;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.issuetable.ColumnDescriptor;
 import org.netbeans.modules.bugtracking.team.spi.OwnerInfo;
@@ -122,7 +122,7 @@
 
     private final BugzillaRepository repository;
 
-    private IssueController controller;
+    private BugzillaIssueController controller;
     private BugzillaIssueNode node;
     private OwnerInfo info;
 
@@ -381,9 +381,9 @@
     }
 
 
-    public BugtrackingController getController() {
+    public IssueController getController() {
         if (controller == null) {
-            controller = new IssueController(this);
+            controller = new BugzillaIssueController(this);
         }
         return controller;
     }
diff --git 
a/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssueController.java
 
b/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssueController.java
new file mode 100644
--- /dev/null
+++ 
b/bugzilla/src/org/netbeans/modules/bugzilla/issue/BugzillaIssueController.java
@@ -0,0 +1,98 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License.  When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted    [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2009 Sun Microsystems, Inc.
+ */
+
+package org.netbeans.modules.bugzilla.issue;
+
+import javax.swing.JComponent;
+import org.netbeans.modules.bugtracking.spi.IssueController;
+import org.netbeans.modules.bugtracking.util.UIUtils;
+import org.openide.util.HelpCtx;
+
+/**
+ *
+ * @author Tomas Stupka, Jan Stola
+ */
+public class BugzillaIssueController implements IssueController {
+    private final IssuePanel issuePanel;
+
+    public BugzillaIssueController(BugzillaIssue issue) {
+        IssuePanel panel = new IssuePanel();
+        panel.setIssue(issue);
+        issuePanel = panel;
+        UIUtils.keepFocusedComponentVisible(issuePanel);
+    }
+
+    @Override
+    public JComponent getComponent() {
+        return issuePanel;
+    }
+
+    @Override
+    public void opened() {
+        BugzillaIssue issue = issuePanel.getIssue();
+        if (issue != null) {
+            issuePanel.opened();
+        }
+    }
+
+    @Override
+    public void closed() {
+        BugzillaIssue issue = issuePanel.getIssue();
+        if (issue != null) {
+            issuePanel.closed();
+        }
+    }
+
+    @Override
+    public HelpCtx getHelpCtx() {
+        return new 
HelpCtx("org.netbeans.modules.bugzilla.issue.BugzillaIssue"); // NOI18N
+    }
+
+    void refreshViewData(boolean force) {
+        issuePanel.reloadFormInAWT(force);
+    }
+
+    void modelStateChanged (boolean modelDirty, boolean 
modelHasLocalChanges) {
+        issuePanel.modelStateChanged(modelDirty, modelHasLocalChanges);
+    }
+
+}
diff --git 
a/bugzilla/src/org/netbeans/modules/bugzilla/issue/IssueController.java 
b/bugzilla/src/org/netbeans/modules/bugzilla/issue/IssueController.java
deleted file mode 100644
--- a/bugzilla/src/org/netbeans/modules/bugzilla/issue/IssueController.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2010 Oracle and/or its affiliates. All rights reserved.
- *
- * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
- * Other names may be trademarks of their respective owners.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common
- * Development and Distribution License("CDDL") (collectively, the
- * "License"). You may not use this file except in compliance with the
- * License. You can obtain a copy of the License at
- * http://www.netbeans.org/cddl-gplv2.html
- * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
- * specific language governing permissions and limitations under the
- * License.  When distributing the software, include this License Header
- * Notice in each file and include the License file at
- * nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the GPL Version 2 section of the License file that
- * accompanied this code. If applicable, add the following below the
- * License Header, with the fields enclosed by brackets [] replaced by
- * your own identifying information:
- * "Portions Copyrighted [year] [name of copyright owner]"
- *
- * If you wish your version of this file to be governed by only the CDDL
- * or only the GPL Version 2, indicate your decision by adding
- * "[Contributor] elects to include this software in this distribution
- * under the [CDDL or GPL Version 2] license." If you do not indicate a
- * single choice of license, a recipient has the option to distribute
- * your version of this file under either the CDDL, the GPL Version 2 or
- * to extend the choice of license to its licensees as provided above.
- * However, if you add GPL Version 2 code and therefore, elected the GPL
- * Version 2 license, then the option applies only if the new code is
- * made subject to such option by the copyright holder.
- *
- * Contributor(s):
- *
- * Portions Copyrighted 2009 Sun Microsystems, Inc.
- */
-
-package org.netbeans.modules.bugzilla.issue;
-
-import javax.swing.JComponent;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
-import org.netbeans.modules.bugtracking.util.UIUtils;
-import org.openide.util.HelpCtx;
-
-/**
- *
- * @author Tomas Stupka, Jan Stola
- */
-public class IssueController extends BugtrackingController {
-    private final IssuePanel issuePanel;
-
-    public IssueController(BugzillaIssue issue) {
-        IssuePanel panel = new IssuePanel();
-        panel.setIssue(issue);
-        issuePanel = panel;
-        UIUtils.keepFocusedComponentVisible(issuePanel);
-    }
-
-    @Override
-    public JComponent getComponent() {
-        return issuePanel;
-    }
-
-    @Override
-    public void opened() {
-        BugzillaIssue issue = issuePanel.getIssue();
-        if (issue != null) {
-            issuePanel.opened();
-        }
-    }
-
-    @Override
-    public void closed() {
-        BugzillaIssue issue = issuePanel.getIssue();
-        if (issue != null) {
-            issuePanel.closed();
-        }
-    }
-
-    @Override
-    public HelpCtx getHelpCtx() {
-        return new 
HelpCtx(org.netbeans.modules.bugzilla.issue.BugzillaIssue.class);
-    }
-
-    @Override
-    public boolean isValid() {
-        return true; // PENDING
-    }
-
-    @Override
-    public void applyChanges() {
-    }
-
-    void refreshViewData(boolean force) {
-        issuePanel.reloadFormInAWT(force);
-    }
-
-    void modelStateChanged (boolean modelDirty, boolean 
modelHasLocalChanges) {
-        issuePanel.modelStateChanged(modelDirty, modelHasLocalChanges);
-    }
-
-}
diff --git 
a/bugzilla/test/unit/src/org/netbeans/modules/bugzilla/query/IssueTableTest.java
 
b/bugzilla/test/unit/src/org/netbeans/modules/bugzilla/query/IssueTableTest.java
--- 
a/bugzilla/test/unit/src/org/netbeans/modules/bugzilla/query/IssueTableTest.java
+++ 
b/bugzilla/test/unit/src/org/netbeans/modules/bugzilla/query/IssueTableTest.java
@@ -51,7 +51,7 @@
 import org.netbeans.modules.bugtracking.api.Query;
 import org.netbeans.modules.bugtracking.issuetable.IssueTable;
 import org.netbeans.modules.bugtracking.issuetable.IssuetableTestFactory;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.util.BugtrackingUtil;
 import org.netbeans.modules.bugzilla.TestConstants;
 import org.netbeans.modules.bugzilla.TestUtil;
diff --git a/jira/src/org/netbeans/modules/jira/JiraIssueProvider.java 
b/jira/src/org/netbeans/modules/jira/JiraIssueProvider.java
--- a/jira/src/org/netbeans/modules/jira/JiraIssueProvider.java
+++ b/jira/src/org/netbeans/modules/jira/JiraIssueProvider.java
@@ -40,7 +40,7 @@
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.util.List;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.jira.issue.NbJiraIssue;
 
@@ -102,7 +102,7 @@
     }
 
     @Override
-    public BugtrackingController getController(NbJiraIssue data) {
+    public IssueController getController(NbJiraIssue data) {
         return data.getController();
     }
 
diff --git a/jira/src/org/netbeans/modules/jira/issue/NbJiraIssue.java 
b/jira/src/org/netbeans/modules/jira/issue/NbJiraIssue.java
--- a/jira/src/org/netbeans/modules/jira/issue/NbJiraIssue.java
+++ b/jira/src/org/netbeans/modules/jira/issue/NbJiraIssue.java
@@ -92,7 +92,7 @@
 import org.netbeans.modules.bugtracking.issuetable.IssueNode;
 import org.netbeans.modules.jira.Jira;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.issuetable.ColumnDescriptor;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 import org.netbeans.modules.bugtracking.cache.IssueCache;
@@ -1120,7 +1120,7 @@
         addAttachment(file, comment, null);
     }
 
-    public BugtrackingController getController() {
+    public IssueController getController() {
         if(controller == null) {
             controller = new Controller();
         }
@@ -1896,7 +1896,7 @@
         }
     }
 
-    private class Controller extends BugtrackingController {
+    private class Controller implements IssueController {
         private JComponent component;
         private IssuePanel issuePanel;
 
@@ -1938,15 +1938,6 @@
             }
         }
 
-        @Override
-        public boolean isValid() {
-            return true; // PENDING
-        }
-
-        @Override
-        public void applyChanges() {
-        }
-
         private void refreshViewData (final boolean force) {
             Mutex.EVENT.readAccess(new Runnable() {
                 @Override
@@ -1960,7 +1951,7 @@
 
         @Override
         public HelpCtx getHelpCtx() {
-            return new 
HelpCtx(org.netbeans.modules.jira.issue.NbJiraIssue.class);
+            return new 
HelpCtx("org.netbeans.modules.jira.issue.NbJiraIssue"); // NOI18N
         }
 
         private void modelStateChanged (boolean modelDirty, boolean 
modelHasLocalChanges) {
diff --git 
a/jira/test/unit/src/org/netbeans/modules/jira/query/IssueTableTest.java 
b/jira/test/unit/src/org/netbeans/modules/jira/query/IssueTableTest.java
--- a/jira/test/unit/src/org/netbeans/modules/jira/query/IssueTableTest.java
+++ b/jira/test/unit/src/org/netbeans/modules/jira/query/IssueTableTest.java
@@ -48,7 +48,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import junit.framework.Test;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.QueryProvider;
 import org.netbeans.modules.jira.*;
 import org.netbeans.modules.bugtracking.BugtrackingManager;
diff --git 
a/localtasks/src/org/netbeans/modules/localtasks/IssueProviderImpl.java 
b/localtasks/src/org/netbeans/modules/localtasks/IssueProviderImpl.java
--- a/localtasks/src/org/netbeans/modules/localtasks/IssueProviderImpl.java
+++ b/localtasks/src/org/netbeans/modules/localtasks/IssueProviderImpl.java
@@ -45,7 +45,7 @@
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import org.netbeans.modules.localtasks.task.LocalTask;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
 
 /**
@@ -105,7 +105,7 @@
     }
 
     @Override
-    public BugtrackingController getController (LocalTask data) {
+    public IssueController getController (LocalTask data) {
         return data.getController();
     }
 
diff --git 
a/localtasks/src/org/netbeans/modules/localtasks/task/LocalTask.java 
b/localtasks/src/org/netbeans/modules/localtasks/task/LocalTask.java
--- a/localtasks/src/org/netbeans/modules/localtasks/task/LocalTask.java
+++ b/localtasks/src/org/netbeans/modules/localtasks/task/LocalTask.java
@@ -61,7 +61,7 @@
 import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
 import org.eclipse.mylyn.tasks.core.data.TaskData;
 import org.netbeans.modules.bugtracking.api.Issue;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.localtasks.LocalRepository;
 import org.netbeans.modules.localtasks.util.FileUtils;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
@@ -179,7 +179,7 @@
         return false;
     }
 
-    public BugtrackingController getController () {
+    public IssueController getController () {
         return getTaskController();
     }
     
diff --git 
a/localtasks/src/org/netbeans/modules/localtasks/task/TaskController.java 
b/localtasks/src/org/netbeans/modules/localtasks/task/TaskController.java
--- a/localtasks/src/org/netbeans/modules/localtasks/task/TaskController.java
+++ b/localtasks/src/org/netbeans/modules/localtasks/task/TaskController.java
@@ -42,9 +42,8 @@
 
 package org.netbeans.modules.localtasks.task;
 
-import java.io.IOException;
 import javax.swing.JComponent;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.openide.util.HelpCtx;
 import org.openide.util.Mutex;
 
@@ -52,7 +51,7 @@
  *
  * @author Ondrej Vrabec
  */
-final class TaskController extends BugtrackingController {
+final class TaskController implements IssueController {
     private final LocalTask task;
     private final TaskPanel panel;
     private boolean opened;
@@ -73,17 +72,6 @@
     }
 
     @Override
-    public boolean isValid () {
-        // ???
-        return true;
-    }
-
-    @Override
-    public void applyChanges () throws IOException {
-        // ???
-    }
-
-    @Override
     public void opened () {
         if (!opened) {
             opened = true;
diff --git 
a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/ODCSIssueProvider.java 
b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/ODCSIssueProvider.java
--- a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/ODCSIssueProvider.java
+++ b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/ODCSIssueProvider.java
@@ -44,7 +44,7 @@
 
 import java.beans.PropertyChangeListener;
 import java.io.File;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.odcs.tasks.issue.ODCSIssue;
 
@@ -105,7 +105,7 @@
     }
 
     @Override
-    public BugtrackingController getController(ODCSIssue data) {
+    public IssueController getController(ODCSIssue data) {
         return data.getController();
     }
 
diff --git 
a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssue.java 
b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssue.java
--- a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssue.java
+++ b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssue.java
@@ -75,7 +75,7 @@
 import org.eclipse.mylyn.tasks.core.data.TaskOperation;
 import org.netbeans.modules.bugtracking.issuetable.ColumnDescriptor;
 import org.netbeans.modules.bugtracking.issuetable.IssueNode;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.spi.IssuePriorityInfo;
 import org.netbeans.modules.bugtracking.spi.IssueProvider;
 import org.netbeans.modules.bugtracking.spi.IssueStatusProvider;
@@ -705,7 +705,7 @@
         return updateModel() && refresh();
     }
 
-    public BugtrackingController getController() {
+    public IssueController getController() {
         if(controller == null) {
             controller = new ODCSIssueController(this);
         }
diff --git 
a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssueController.java
 
b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssueController.java
--- 
a/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssueController.java
+++ 
b/odcs.tasks/src/org/netbeans/modules/odcs/tasks/issue/ODCSIssueController.java
@@ -46,7 +46,7 @@
 import javax.swing.JComponent;
 import javax.swing.JScrollPane;
 import javax.swing.UIManager;
-import org.netbeans.modules.bugtracking.spi.BugtrackingController;
+import org.netbeans.modules.bugtracking.spi.IssueController;
 import org.netbeans.modules.bugtracking.util.UIUtils;
 import org.openide.util.HelpCtx;
 
@@ -54,8 +54,8 @@
  *
  * @author Tomas Stupka, Jan Stola
  */
-public class ODCSIssueController extends BugtrackingController {
-    private JComponent component;
+public class ODCSIssueController implements IssueController {
+    private final JComponent component;
     private final IssuePanel panel;
 
     public ODCSIssueController(ODCSIssue issue) {
@@ -100,15 +100,6 @@
         return new 
HelpCtx("org.netbeans.modules.odcs.tasks.issue.ODCSIssue"); // NOI18N
     }
 
-    @Override
-    public boolean isValid() {
-        return true; // PENDING
-    }
-
-    @Override
-    public void applyChanges() {
-    }
-
     void refreshViewData(boolean force) {
         panel.reloadFormInAWT(force);
     }

[hg] main-silver: issue controller cleanup

Tomas Stupka 10/11/2013

Project Features

About this Project

ConnectedDeveloper was started in November 2009, is owned by tpavek, and has 64 members.
By use of this website, you agree to the NetBeans Policies and Terms of Use (revision 20131025.e7cbc9d). © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo
 
 
Close
loading
Please Confirm
Close