starting project notifications
[jSite2.git] / src / net / pterodactylus / jsite / gui / MainWindow.java
index 7eea5cf..9731ec5 100644 (file)
@@ -40,9 +40,7 @@ import javax.swing.JFrame;
 import javax.swing.JMenuBar;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
-import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
-import javax.swing.JTable;
 import javax.swing.JToolBar;
 import javax.swing.SwingConstants;
 import javax.swing.border.EmptyBorder;
@@ -117,9 +115,6 @@ public class MainWindow extends JFrame implements WindowListener, I18nable, Prop
        /** The project overview panel. */
        private Box projectOverviewPanel;
 
-       /** The request table. */
-       private JTable requestTable;
-
        /**
         * Creates a new main window that redirects all actions to the given swing
         * interface.
@@ -265,11 +260,69 @@ public class MainWindow extends JFrame implements WindowListener, I18nable, Prop
                }
        }
 
+       /**
+        * @param project
+        */
+       void projectInsertStarted(Project project) {
+               ProjectPanel projectPanel = findProjectPanel(project);
+               if (projectPanel == null) {
+                       return;
+               }
+               
+       }
+
+       /**
+        * @param project
+        * @param totalBlocks
+        * @param requiredBlocks
+        * @param successfulBlocks
+        * @param failedBlocks
+        * @param fatallyFailedBlocks
+        * @param finalizedTotal
+        */
+       void projectInsertProgressed(Project project, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal) {
+
+       }
+
+       /**
+        * @param project
+        */
+       void projectInsertGeneratedURI(Project project) {
+
+       }
+
+       /**
+        * @param project
+        * @param success
+        */
+       void projectInsertFinished(Project project, boolean success) {
+
+       }
+
        //
        // PRIVATE METHODS
        //
 
        /**
+        * Locates the project panel that contains the given project.
+        * 
+        * @param project
+        *            The wanted project
+        */
+       private ProjectPanel findProjectPanel(Project project) {
+               int tabCount = projectPane.getTabCount();
+               for (int tabIndex = 1; tabIndex < tabCount; tabIndex++) {
+                       Component tabComponent = projectPane.getComponentAt(tabIndex);
+                       if (tabComponent instanceof ProjectPanel) {
+                               if (((ProjectPanel) tabComponent).getProject() == project) {
+                                       return (ProjectPanel) tabComponent;
+                               }
+                       }
+               }
+               return null;
+       }
+
+       /**
         * Initializes the window by creating all its components.
         */
        private void initWindow() {
@@ -346,14 +399,9 @@ public class MainWindow extends JFrame implements WindowListener, I18nable, Prop
        private void initComponents() {
                super.getContentPane().add(statusBar, BorderLayout.PAGE_END);
 
-               /*
-                * the main window consists of two panels which are vertically oriented.
-                * the upper panel contains of a tabbed pane, the lower panel consists
-                * of a table that lists the running requests.
-                */
-
+               /* TODO - remove upper panel */
                JPanel upperPanel = new JPanel(new BorderLayout(12, 12));
-               getContentPane().add(upperPanel, BorderLayout.PAGE_START);
+               getContentPane().add(upperPanel, BorderLayout.CENTER);
                contentPane.setBorder(new EmptyBorder(12, 12, 12, 12));
 
                projectPane = new JTabbedPane(SwingConstants.TOP, JTabbedPane.SCROLL_TAB_LAYOUT);
@@ -369,9 +417,6 @@ public class MainWindow extends JFrame implements WindowListener, I18nable, Prop
                projectOverviewPanel.add(addProjectButton);
                projectOverviewPanel.add(Box.createVerticalGlue());
 
-               requestTable = new JTable(swingInterface.getRequestTableModel());
-               getContentPane().add(new JScrollPane(requestTable), BorderLayout.CENTER);
-
                // JPanel lowerPanel = new JPanel(new BorderLayout(12, 12));
                // getContentPane().add(lowerPanel, BorderLayout.CENTER);
        }
@@ -404,9 +449,12 @@ public class MainWindow extends JFrame implements WindowListener, I18nable, Prop
                }
                helpMenu.updateI18n();
                getJMenuBar().revalidate();
-               projectOverviewPanel.setName(I18n.get("mainWindow.pane.overview.title"));
+               projectPane.setTitleAt(0, I18n.get("mainWindow.pane.overview.title"));
                for (int componentIndex = 0; componentIndex < projectPane.getTabCount(); componentIndex++) {
-                       projectPane.setTitleAt(componentIndex, projectPane.getComponentAt(componentIndex).getName());
+                       Component tabComponent = projectPane.getComponentAt(componentIndex);
+                       if (tabComponent instanceof ProjectPanel) {
+                               ((ProjectPanel) tabComponent).updateI18n();
+                       }
                }
                refreshNodeMenuItems();
                SwingUtils.repackCentered(this);