Package net.sourceforge.ganttproject

Source Code of net.sourceforge.ganttproject.GanttChartTabContentPanel

/*
* Created on 22.10.2005
*/
package net.sourceforge.ganttproject;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.Action;
import javax.swing.Box;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

import org.eclipse.core.runtime.IAdaptable;

import net.sourceforge.ganttproject.action.task.LinkTasksAction;
import net.sourceforge.ganttproject.action.task.UnlinkTasksAction;
import net.sourceforge.ganttproject.chart.Chart;
import net.sourceforge.ganttproject.gui.TaskTreeUIFacade;
import net.sourceforge.ganttproject.gui.TestGanttRolloverButton;
import net.sourceforge.ganttproject.gui.UIFacade;
import net.sourceforge.ganttproject.language.GanttLanguage;

class GanttChartTabContentPanel implements IAdaptable {
    private JSplitPane mySplitPane;
    private Component myTaskTree;
    private final Component myGanttChart;
    private final TaskTreeUIFacade myTreeFacade;
    private JPanel myTabContentPanel;
    private final IGanttProject myProject;
    private final UIFacade myWorkbenchFacade;

    GanttChartTabContentPanel(IGanttProject project, UIFacade workbenchFacade, TaskTreeUIFacade treeFacade, Component ganttChart) {
        myProject = project;
        myWorkbenchFacade = workbenchFacade;
        myTreeFacade = treeFacade;
        myTaskTree = treeFacade.getTreeComponent();
        myGanttChart = ganttChart;
    }
    Component getComponent() {
      if (myTabContentPanel==null) {
          JPanel left = new JPanel(new BorderLayout());
          Box treeHeader = Box.createVerticalBox();
          GanttImagePanel but = new GanttImagePanel("big.png", 300,
                  42);
          treeHeader.add(but);
          left.add(treeHeader, BorderLayout.NORTH);
          left.add(myTaskTree, BorderLayout.CENTER);
          left.setPreferredSize(new Dimension(315, 600));
          left.setBackground(new Color(102, 153, 153));
 
         
          JPanel right = new JPanel(new BorderLayout());
          right.add(myGanttChart, BorderLayout.CENTER);
          // A splitpane is use
          mySplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
          if (GanttLanguage.getInstance().getComponentOrientation() == ComponentOrientation.LEFT_TO_RIGHT) {
              mySplitPane.setLeftComponent(left);
              mySplitPane.setRightComponent(right);
              mySplitPane
                      .applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
          } else {
              mySplitPane.setRightComponent(left);
              mySplitPane.setLeftComponent(right);
              mySplitPane.setDividerLocation((int) (Toolkit.getDefaultToolkit()
                      .getScreenSize().getWidth() - left.getPreferredSize()
                      .getWidth()));
              mySplitPane
                      .applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
          }
          mySplitPane.setOneTouchExpandable(true);
          mySplitPane.setPreferredSize(new Dimension(800, 500));
          myTabContentPanel = new JPanel(new BorderLayout());
          myTabContentPanel.add(createButtonPanel(), BorderLayout.NORTH);
          myTabContentPanel.add(mySplitPane, BorderLayout.CENTER);
      }
        return myTabContentPanel;
       
    }
   
    private Component createButtonPanel() {
        Box buttonBar = Box.createHorizontalBox();
        //JToolBar buttonBar = new JToolBar();
        //buttonBar.setFloatable(false);
        TestGanttRolloverButton unindentButton = new TestGanttRolloverButton(myTreeFacade.getUnindentAction()) {
      public String getText() {
        return null;
      }       
        };
        buttonBar.add(unindentButton);
       
        TestGanttRolloverButton indentButton = new TestGanttRolloverButton(myTreeFacade.getIndentAction()) {
      public String getText() {
        return null;
      }                 
        };
        buttonBar.add(indentButton);
        //
        buttonBar.add(Box.createHorizontalStrut(3));
        //
        TestGanttRolloverButton upButton = new TestGanttRolloverButton(myTreeFacade.getMoveUpAction()) {
      public String getText() {
        return null;
      }                 
        };
        buttonBar.add(upButton);
        //
        TestGanttRolloverButton downButton = new TestGanttRolloverButton(myTreeFacade.getMoveDownAction()) {
      public String getText() {
        return null;
      }                 
        };
        buttonBar.add(downButton);
        //
        buttonBar.add(Box.createHorizontalStrut(8));
        Action linkAction = new LinkTasksAction(myProject.getTaskManager(), Mediator.getTaskSelectionManager(), myWorkbenchFacade);
        myTreeFacade.setLinkTasksAction(linkAction);
        TestGanttRolloverButton linkButton = new TestGanttRolloverButton(linkAction) {
      public String getText() {
        return null;
      }                 
        };
        buttonBar.add(linkButton);
        //
        Action unlinkAction = new UnlinkTasksAction(myProject.getTaskManager(), Mediator.getTaskSelectionManager(), myWorkbenchFacade);
        myTreeFacade.setUnlinkTasksAction(unlinkAction);
        TestGanttRolloverButton unlinkButton = new TestGanttRolloverButton(unlinkAction) {
      public String getText() {
        return null;
      }                 
        };
        buttonBar.add(unlinkButton);
        //
        JPanel buttonPanel = new JPanel(new BorderLayout());
        buttonPanel.add(buttonBar, BorderLayout.WEST);
        return buttonPanel;
    }
    int getDividerLocation() {
        return mySplitPane.getDividerLocation();
    }
    void setDividerLocation(int location) {
        mySplitPane.setDividerLocation(location);
    }
  public Object getAdapter(Class adapter) {
    if (Container.class.equals(adapter)) {
      return getComponent();
    }
    if (Chart.class.equals(adapter)) {
      return myGanttChart;
    }
    return null;
  }
}
TOP

Related Classes of net.sourceforge.ganttproject.GanttChartTabContentPanel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.