summaryrefslogtreecommitdiff
path: root/java/src/IceGridGUI/MainPane.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceGridGUI/MainPane.java')
-rw-r--r--java/src/IceGridGUI/MainPane.java154
1 files changed, 154 insertions, 0 deletions
diff --git a/java/src/IceGridGUI/MainPane.java b/java/src/IceGridGUI/MainPane.java
new file mode 100644
index 00000000000..f8da106595a
--- /dev/null
+++ b/java/src/IceGridGUI/MainPane.java
@@ -0,0 +1,154 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package IceGridGUI;
+
+import java.awt.Component;
+
+import javax.swing.*;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.border.EmptyBorder;
+
+public class MainPane extends JTabbedPane
+{
+ public void addApplication(ApplicationPane application)
+ {
+ IceGridGUI.Application.Root root = application.getRoot();
+ super.addTab(computeTitle(root.getId()), getIcon(root), application);
+ }
+
+ public void setTitleAt(int index, String title)
+ {
+ super.setTitleAt(index, computeTitle(title));
+ }
+
+ public void resetTitle(IceGridGUI.Application.Root root)
+ {
+ int i = findIndex(root);
+ if(i > 0)
+ {
+ setTitleAt(i, root.getId());
+ }
+ }
+
+ public void resetIcon(IceGridGUI.Application.Root root)
+ {
+ int i = findIndex(root);
+ if(i > 0)
+ {
+ setIconAt(i, getIcon(root));
+ }
+ }
+
+ public int findIndex(IceGridGUI.Application.Root root)
+ {
+ for(int i = 1; i < getTabCount(); ++i)
+ {
+ ApplicationPane pane = (ApplicationPane)getComponentAt(i);
+ if(pane.getRoot() == root)
+ {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ public ApplicationPane findApplication(IceGridGUI.Application.Root root)
+ {
+ for(int i = 1; i < getTabCount(); ++i)
+ {
+ ApplicationPane pane = (ApplicationPane)getComponentAt(i);
+ if(pane.getRoot() == root)
+ {
+ return pane;
+ }
+ }
+ return null;
+ }
+
+ public void removeApplication(IceGridGUI.Application.Root root)
+ {
+ for(int i = 1; i < getTabCount(); ++i)
+ {
+ ApplicationPane pane = (ApplicationPane)getComponentAt(i);
+ if(pane.getRoot() == root)
+ {
+ removeTabAt(i);
+ break;
+ }
+ }
+ }
+
+ MainPane(Coordinator coordinator)
+ {
+ _coordinator = coordinator;
+ setBorder(new EmptyBorder(10, 10, 10, 10));
+
+ addChangeListener(new ChangeListener()
+ {
+ public void stateChanged(ChangeEvent evt)
+ {
+ Tab tab = (Tab)getSelectedComponent();
+ tab.selected();
+ }
+ });
+
+ _registryIcon = Utils.getIcon("/icons/16x16/registry_bound_application.png");
+ _fileIcon = Utils.getIcon("/icons/16x16/file_bound_application.png");
+
+ addTab("Live Deployment",
+ Utils.getIcon("/icons/16x16/live_deployment.png"),
+ _coordinator.getLiveDeploymentPane());
+ }
+
+ private String computeTitle(String name)
+ {
+ String title = name;
+ int i = 0;
+ while(hasTitle(title))
+ {
+ title = name + " (" + Integer.toString(++i) + ")";
+ }
+ return title;
+ }
+
+ private boolean hasTitle(String title)
+ {
+ int tabCount = getTabCount();
+ for(int i = 0; i < tabCount; ++i)
+ {
+ if(title.equals(getTitleAt(i)))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private ImageIcon getIcon(IceGridGUI.Application.Root root)
+ {
+ if(root.isLive())
+ {
+ return _registryIcon;
+ }
+ else if(root.hasFile())
+ {
+ return _fileIcon;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private Coordinator _coordinator;
+ private ImageIcon _registryIcon;
+ private ImageIcon _fileIcon;
+}