1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
package com.explodingpixels.macwidgets;
import com.explodingpixels.widgets.PopupMenuCustomizerUsingStrings;
import com.explodingpixels.widgets.TrackingSpacer;
import com.explodingpixels.widgets.WindowUtils;
import javax.swing.AbstractButton;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Image;
public class DTrackingSpacer {
private static UnifiedToolBar createUnifiedToolBar(SourceList sourceList) {
Icon blueGlobeIcon = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/DotMac.png"));
Icon greyGlobeIcon = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/Network.png"));
Icon preferences = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/PreferencesGeneral.png"));
Icon gear = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/Advanced.png"));
AbstractButton greyGlobeButton =
MacButtonFactory.makeUnifiedToolBarButton(
new JButton("Network", greyGlobeIcon));
greyGlobeButton.setEnabled(false);
AbstractButton blueButton = new JButton("MobileMe", blueGlobeIcon);
blueButton.setEnabled(true);
UnifiedToolBar toolBar = new UnifiedToolBar();
TrackingSpacer spacer =
new TrackingSpacer(sourceList.getComponent(),
TrackingSpacer.TrackingDimension.WIDTH, -10);
toolBar.addComponentToLeft(spacer);
toolBar.addComponentToLeft(MacButtonFactory.makeUnifiedToolBarButton(
blueButton));
toolBar.addComponentToLeft(greyGlobeButton);
toolBar.addComponentToLeft(MacButtonFactory.makeUnifiedToolBarButton(
new JButton("Preferences", preferences)));
toolBar.addComponentToRight(MacButtonFactory.makeUnifiedToolBarButton(
new JButton("Advanced", gear)));
return toolBar;
}
private static SourceList createSourceList() {
Image blueGlobeImage = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/DotMac.png")).getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH);
Image greyGlobeImage = new ImageIcon(DEverything.class.getResource(
"/com/explodingpixels/macwidgets/icons/Network.png")).getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH);
Icon blueGlobeIcon = new ImageIcon(blueGlobeImage);
Icon greyGlobeIcon = new ImageIcon(greyGlobeImage);
SourceListCategory categoryOne = new SourceListCategory("Category 1");
final SourceListCategory categoryTwo = new SourceListCategory("Category 2");
SourceListCategory categoryThree = new SourceListCategory("Category 3");
SourceListItem itemA = new SourceListItem("SourceListItem A", blueGlobeIcon);
SourceListItem itemB = new SourceListItem("SourceListItem B", greyGlobeIcon);
SourceListItem itemC = new SourceListItem("SourceListItem D", greyGlobeIcon);
SourceListItem itemD = new SourceListItem("SourceListItem E", greyGlobeIcon);
SourceListItem itemE = new SourceListItem("Really really really really really long SourceListItem", greyGlobeIcon);
final SourceListItem itemG = new SourceListItem("SourceListItem G", greyGlobeIcon);
SourceListItem itemH = new SourceListItem("SourceListItem H", greyGlobeIcon);
SourceListItem itemI = new SourceListItem("SourceListItem I", greyGlobeIcon);
SourceListItem itemJ = new SourceListItem("SourceListItem J", greyGlobeIcon);
SourceListItem itemK = new SourceListItem("SourceListItem K", greyGlobeIcon);
SourceListItem itemL = new SourceListItem("SourceListItem L", greyGlobeIcon);
itemA.setCounterValue(1);
itemC.setCounterValue(385);
itemE.setCounterValue(3);
itemI.setCounterValue(17);
final SourceListModel model = new SourceListModel();
model.addCategory(categoryOne);
model.addItemToCategory(itemA, categoryOne);
model.addItemToCategory(itemB, categoryOne);
model.addCategory(categoryTwo);
model.addItemToCategory(itemC, categoryTwo);
model.addItemToCategory(itemD, categoryTwo);
model.addItemToCategory(itemE, categoryTwo);
model.addCategory(categoryThree);
model.addItemToCategory(itemG, categoryThree);
model.addItemToCategory(itemH, categoryThree);
model.addItemToCategory(itemI, categoryThree);
model.addItemToCategory(itemJ, categoryThree);
model.addItemToCategory(itemK, categoryThree);
model.addItemToCategory(itemL, categoryThree);
SourceList sourceList = new SourceList(model);
// sourceList.setFocusable(false);
return sourceList;
}
private static JSplitPane createJSplitPane(SourceList sourceList) {
JTextArea textArea = new JTextArea();
JSplitPane splitPane = MacWidgetFactory.createSplitPaneForSourceList(sourceList, textArea);
// TODO make SourceList a better size by default
splitPane.setDividerLocation(200);
return splitPane;
}
private static void createAndInstallControlBar(SourceList sourceList, JSplitPane splitPane) {
SourceListControlBar controlBar = new SourceListControlBar();
controlBar.createAndAddButton(MacIcons.PLUS, null);
controlBar.createAndAddButton(MacIcons.MINUS, null);
controlBar.createAndAddPopdownButton(MacIcons.GEAR,
new PopupMenuCustomizerUsingStrings(null, "Item One", "Item Two", "Item Three"));
sourceList.installSourceListControlBar(controlBar);
controlBar.installDraggableWidgetOnSplitPane(splitPane);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
MacUtils.makeWindowLeopardStyle(frame.getRootPane());
WindowUtils.createAndInstallRepaintWindowFocusListener(frame);
SourceList sourceList = createSourceList();
JSplitPane splitPane = createJSplitPane(sourceList);
UnifiedToolBar unifiedToolBar = createUnifiedToolBar(sourceList);
createAndInstallControlBar(sourceList, splitPane);
unifiedToolBar.installWindowDraggerOnWindow(frame);
frame.add(unifiedToolBar.getComponent(), BorderLayout.NORTH);
frame.add(splitPane, BorderLayout.CENTER);
frame.setSize(650, 450);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
|