ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/AE/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java
Revision: 708
Committed: Thu Mar 21 09:39:55 2013 UTC (12 years, 6 months ago) by alloc
Content type: text/x-java
File size: 4741 byte(s)
Log Message:
AEI2: Refactorings for breaking out independent features into libraries

File Contents

# Content
1 package net.oni2.aeinstaller.gui.toolmanager;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.KeyEvent;
5 import java.util.ResourceBundle;
6 import java.util.TreeSet;
7
8 import javax.swing.AbstractAction;
9 import javax.swing.Icon;
10 import javax.swing.ImageIcon;
11 import javax.swing.JButton;
12 import javax.swing.JComponent;
13 import javax.swing.JDialog;
14 import javax.swing.JOptionPane;
15 import javax.swing.JScrollPane;
16 import javax.swing.JSplitPane;
17 import javax.swing.KeyStroke;
18
19 import net.oni2.aeinstaller.backend.oni.Installer;
20 import net.oni2.aeinstaller.backend.packages.Package;
21 import net.oni2.aeinstaller.gui.downloadwindow.Downloader;
22 import net.oni2.aeinstaller.gui.modtable.ModSelectionListener;
23 import net.oni2.aeinstaller.gui.modtable.ModTable;
24 import net.oni2.aeinstaller.gui.modtable.ModTable.ETableContentType;
25 import net.oni2.aeinstaller.gui.packageinfobox.PackageInfoBox;
26 import net.oni2.settingsmanager.Settings;
27
28 import org.javabuilders.BuildResult;
29 import org.javabuilders.swing.SwingJavaBuilder;
30
31 /**
32 * @author Christian Illy
33 */
34 public class ToolManager extends JDialog implements ModSelectionListener {
35 private static final long serialVersionUID = 343221630538866384L;
36
37 private ResourceBundle bundle = ResourceBundle
38 .getBundle("net.oni2.aeinstaller.localization."
39 + getClass().getSimpleName());
40 @SuppressWarnings("unused")
41 private BuildResult result = SwingJavaBuilder.build(this, bundle);
42
43 private JSplitPane contents;
44
45 private JScrollPane scrollTools;
46 private ModTable tblTools;
47
48 private PackageInfoBox pkgInfo;
49 private JButton btnInstall;
50
51 private Icon icoInstall = null;
52 private Icon icoUninstall = null;
53
54 private Package selectedPackage = null;
55
56 /**
57 * Open the dialog
58 */
59 public ToolManager() {
60 AbstractAction closeAction = new AbstractAction() {
61
62 private static final long serialVersionUID = 1L;
63
64 public void actionPerformed(ActionEvent arg0) {
65 dispose();
66 }
67 };
68 KeyStroke ksCtrlW = KeyStroke
69 .getKeyStroke('W', KeyEvent.CTRL_DOWN_MASK);
70 getRootPane()
71 .getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
72 .put(ksCtrlW, "close");
73 getRootPane().getActionMap().put("close", closeAction);
74
75 contents.setDividerLocation(Settings.getInstance().get("win_tools_divloc", 550));
76 contents.setResizeWeight(0.4);
77
78 tblTools = new ModTable(ETableContentType.TOOLS);
79 tblTools.reloadData();
80 scrollTools.setViewportView(tblTools);
81
82 tblTools.addModSelectionListener(this);
83
84 icoInstall = new ImageIcon(getClass().getResource(
85 SwingJavaBuilder.getConfig().getResource("img.install")));
86 icoUninstall = new ImageIcon(getClass().getResource(
87 SwingJavaBuilder.getConfig().getResource("img.uninstall")));
88
89 setSize(Settings.getInstance().get("win_tools_width", 950), Settings.getInstance().get("win_tools_height", 600));
90 setLocationRelativeTo(null);
91 }
92
93 @SuppressWarnings("unused")
94 private void install() {
95 if (selectedPackage != null) {
96 if (selectedPackage.isInstalled()) {
97 TreeSet<Package> tools = new TreeSet<Package>();
98 tools.add(selectedPackage);
99 Installer.installTools(tools, true);
100 } else {
101 if (!selectedPackage.isLocalAvailable()) {
102 if (Settings.getInstance().isOfflineMode()) {
103 JOptionPane.showMessageDialog(this,
104 bundle.getString("offlineMode.text"),
105 bundle.getString("offlineMode.title"),
106 JOptionPane.WARNING_MESSAGE);
107 return;
108 }
109
110 TreeSet<Package> toDownload = new TreeSet<Package>();
111 toDownload.add(selectedPackage);
112
113 Downloader dl = new Downloader(toDownload, null);
114 try {
115 dl.setVisible(true);
116 if (!dl.isFinished())
117 return;
118 } finally {
119 dl.dispose();
120 }
121 }
122
123 TreeSet<Package> tools = new TreeSet<Package>();
124 tools.add(selectedPackage);
125 Installer.installTools(tools, false);
126 }
127 }
128 modSelectionChanged(tblTools, selectedPackage);
129 }
130
131 @Override
132 public void modSelectionChanged(ModTable source, Package mod) {
133 selectedPackage = mod;
134
135 pkgInfo.updateInfo(mod);
136 if (mod != null) {
137 btnInstall.setEnabled(true);
138 if (mod.isInstalled()) {
139 btnInstall.setText(bundle.getString("btnInstall.un.text"));
140 btnInstall.setToolTipText(bundle
141 .getString("btnInstall.un.tooltip"));
142 btnInstall.setIcon(icoUninstall);
143 } else {
144 btnInstall.setText(bundle.getString("btnInstall.text"));
145 btnInstall.setToolTipText(bundle
146 .getString("btnInstall.tooltip"));
147 btnInstall.setIcon(icoInstall);
148 }
149 }
150 }
151
152 @SuppressWarnings("unused")
153 private void closing() {
154 Settings.getInstance().put("win_tools_divloc", contents.getDividerLocation());
155 Settings.getInstance().put("win_tools_width", getWidth());
156 Settings.getInstance().put("win_tools_height", getHeight());
157 }
158 }