1 /***
2 *
3 */
4 package org.telscenter.pas.ui.sidebar;
5
6 import java.awt.Color;
7 import java.awt.Cursor;
8 import java.awt.Dimension;
9 import java.awt.Font;
10 import java.awt.event.ActionEvent;
11
12 import javax.swing.AbstractAction;
13 import javax.swing.Action;
14 import javax.swing.BorderFactory;
15 import javax.swing.ImageIcon;
16 import javax.swing.JButton;
17 import javax.swing.JPanel;
18 import javax.swing.UIManager;
19
20 import org.telscenter.pas.common.ui.button.VerticalTextIcon;
21 import org.telscenter.pas.ui.frames.PasFrame;
22
23 /***
24 * @author aperritano
25 *
26 */
27 public class SidebarMeditor implements Meditor {
28
29 private JPanel wholePanel;
30 private int lastDividerLocation;
31 private PasFrame pasFrame;
32
33 /***
34 * @param wholePanel
35 * @param splitPane
36 * @param pasProjectNavigationPanel
37 */
38 public SidebarMeditor(PasFrame pasFrame) {
39 this.pasFrame = pasFrame;
40 }
41
42 public void collapseView() {
43 this.pasFrame.getCompactNavigationViewPanel().setPreferredSize(new Dimension(0,this.pasFrame.getCompactViewPreferredSize().height));
44 this.pasFrame.getCompactNavigationViewPanel().revalidate();
45
46 pasFrame.getSplitPane().setDividerLocation(lastDividerLocation);
47
48 this.pasFrame.getSplitPane().updateUI();
49
50 }
51
52 public void expandView() {
53 lastDividerLocation = this.pasFrame.getSplitPane().getDividerLocation();
54 this.pasFrame.getCompactNavigationViewPanel().setVisible(true);
55 this.pasFrame.getCompactNavigationViewPanel().setPreferredSize(this.pasFrame.getCompactViewPreferredSize());
56 this.pasFrame.getCompactNavigationViewPanel().revalidate();
57 this.pasFrame.getSplitPane().setDividerLocation(0);
58 this.pasFrame.getSplitPane().updateUI();
59 }
60
61 public JButton getCollapseCompactViewButton() {
62
63 Font font = UIManager.getFont("Label.font");
64 Font verticalFont = font.deriveFont(Font.BOLD, 10.0f);
65
66 final VerticalTextIcon turnOnIcon = new VerticalTextIcon(
67 "Switch Sidebar On", true, Color.WHITE, verticalFont);
68
69
70 JButton collapseViewButton = new JButton();
71
72 collapseViewButton.setAction(collapseCompactView);
73 collapseViewButton.setRolloverEnabled(true);
74 collapseViewButton.setIcon(new ImageIcon(this.getClass().getResource("icons/expandButtonNormal.png")));
75 collapseViewButton.setRolloverIcon(new ImageIcon(this.getClass().getResource("icons/expandButtonRollover.png")));
76
77 collapseViewButton.setBorder(BorderFactory.createEmptyBorder());
78 collapseViewButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
79 collapseViewButton.setFocusPainted(false);
80 collapseViewButton.setRequestFocusEnabled(false);
81 collapseViewButton.setToolTipText("Expand the Navigation Bar");
82 return collapseViewButton;
83 }
84
85 public JButton getExpandCompactViewButton() {
86 JButton expandViewButton = new JButton();
87
88 expandViewButton.setAction(expandCompactView);
89 expandViewButton.setRolloverEnabled(true);
90 expandViewButton.setIcon(new ImageIcon(this.getClass().getResource("icons/shrinkButtonNormal.png")));
91 expandViewButton.setRolloverIcon(new ImageIcon(this.getClass().getResource("icons/shrinkButtonRollover.png")));
92
93 expandViewButton.setBorder(BorderFactory.createEmptyBorder());
94 expandViewButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
95 expandViewButton.setFocusPainted(false);
96 expandViewButton.setRequestFocusEnabled(false);
97 expandViewButton.setToolTipText("Shrink the Navigation Bar");
98 return expandViewButton;
99 }
100
101
102
103 Action expandCompactView = new AbstractAction() {
104
105 private int lastDividerLocation;
106
107 public void actionPerformed(ActionEvent e) {
108 expandView();
109
110 }
111 };
112
113 Action collapseCompactView = new AbstractAction() {
114
115 private int lastDividerLocation;
116
117 public void actionPerformed(ActionEvent e) {
118 collapseView();
119
120 }
121 };
122 }