Changeset 1102 for trunk/src/org/apollo/ApolloSystem.java
- Timestamp:
- 05/10/18 16:04:51 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/apollo/ApolloSystem.java
r1040 r1102 1 1 package org.apollo; 2 2 3 import java.awt.Image;4 import java.awt.Toolkit;5 import java.awt.event.WindowEvent;6 import java.awt.event.WindowListener;7 import java.net.URL;8 3 import java.util.Collection; 9 4 import java.util.HashSet; 10 5 import java.util.Set; 11 6 12 import javax.swing.SwingUtilities;13 7 import javax.swing.UIManager; 14 8 … … 29 23 import org.apollo.widgets.FramePlayer; 30 24 import org.expeditee.actions.Actions; 25 import org.expeditee.core.BlockingRunnable; 26 import org.expeditee.gio.EcosystemManager; 27 import org.expeditee.gio.EcosystemManager.Ecosystem; 28 import org.expeditee.gio.GraphicsManager; 29 import org.expeditee.gio.InputManager.WindowEventListener; 30 import org.expeditee.gio.InputManager.WindowEventType; 31 31 import org.expeditee.gui.Browser; 32 32 import org.expeditee.gui.Frame; 33 33 import org.expeditee.gui.FrameIO; 34 import org.expeditee.gui.FrameKeyboardActions;35 import org.expeditee.gui.FrameMouseActions;36 34 import org.expeditee.settings.UserSettings; 37 import org.expeditee.importer.FrameDNDTransferHandler;38 35 import org.expeditee.items.Item; 39 36 import org.expeditee.items.Text; … … 47 44 public final class ApolloSystem { 48 45 46 private static final String APOLLO_ICON = "org/apollo/icons/mainicon.png"; 47 49 48 // TODO: Create actual frames 50 49 public static final String SYSTEM_FRAMESET_NAME = "apollosystem"; 51 50 public static final String HELP_TOP_FRAMENAME = SYSTEM_FRAMESET_NAME + 2; 52 51 53 //TODO: How to get good results: collection (moteef) and querry52 // TODO: How to get good results: collection (moteef) and querry 54 53 // TODO: How to omit indexing on tracks 55 54 public static final String HELP_MELODYSEARCH_FRAMENAME = SYSTEM_FRAMESET_NAME + 3; … … 58 57 public static final String SETTINGS_NAME_TIMELINE_LMARGIN = "timelineleftmargin"; 59 58 60 61 62 59 public static boolean useQualityGraphics = true; 63 64 private ApolloSystem() {65 }66 60 67 61 private static boolean hasInitialized = false; 68 62 63 private ApolloSystem() 64 { 65 } 66 69 67 /** 70 68 * Initializes Apollo mod for expeditee - prepares all subsystems. 71 69 */ 72 public static void initialize() {73 70 public static void initialize() 71 { 74 72 if (hasInitialized) return; 75 73 76 74 ApolloSystemLog.println("Initializing..."); 77 78 SwingUtilities.invokeLater(new Runnable() { 79 public void run() { 80 81 try { 82 83 URL url = ClassLoader.getSystemResource("org/apollo/icons/mainicon.png"); 84 85 if (url != null) { 86 Image img = Toolkit.getDefaultToolkit().getImage(url); 87 Browser._theBrowser.setIconImage(img); 88 } 89 90 91 92 } catch (Exception e) { 93 e.printStackTrace(); 94 } 95 96 // Ensure that resources are released before the application is closed. 97 Browser._theBrowser.addWindowListener(new WindowListener() { 98 99 public void windowActivated(WindowEvent e) { 100 } 101 102 public void windowClosed(WindowEvent e) { 103 } 104 105 public void windowClosing(WindowEvent e) { 106 ApolloSystem.shutdown(); 107 } 108 109 public void windowDeactivated(WindowEvent e) { 110 } 111 112 public void windowDeiconified(WindowEvent e) { 113 } 114 115 public void windowIconified(WindowEvent e) { 116 } 117 118 public void windowOpened(WindowEvent e) { 119 } 120 121 }); 122 123 Browser._theBrowser.getContentPane().removeKeyListener(FrameKeyboardActions.getInstance()); 124 Browser._theBrowser.removeKeyListener(FrameKeyboardActions.getInstance()); 125 126 Browser._theBrowser.getContentPane().addKeyListener(new AudioFrameKeyboardActions()); 127 Browser._theBrowser.addKeyListener(new AudioFrameKeyboardActions()); 128 129 // Filter out some special mouse move cases 130 AudioFrameMouseActions apolloMouseFilter = new AudioFrameMouseActions(); 131 Browser._theBrowser.getMouseEventRouter().removeExpediteeMouseMotionListener( 132 FrameMouseActions.getInstance()); 133 Browser._theBrowser.getMouseEventRouter().addExpediteeMouseMotionListener(apolloMouseFilter); 134 135 Browser._theBrowser.getMouseEventRouter().removeExpediteeMouseListener( 136 FrameMouseActions.getInstance()); 137 Browser._theBrowser.getMouseEventRouter().addExpediteeMouseListener(apolloMouseFilter); 75 76 // Ensure that resources are released before the application is closed. 77 EcosystemManager.getInputManager().addWindowEventListener(new WindowEventListener() { 78 @Override 79 public void onWindowEvent(WindowEventType type) 80 { 81 if (type != WindowEventType.WINDOW_CLOSED) return; 82 ApolloSystem.shutdown(); 138 83 } 139 84 }); 85 86 EcosystemManager.getInputManager().registerGestureListener(ApolloGestureActions.getInstance()); 87 EcosystemManager.getInputManager().addInputEventToGestureTranslator(new ApolloKBMGestureTranslator()); 140 88 141 89 // Set title … … 161 109 162 110 // Setup for importing audio 163 FrameDNDTransferHandler.getInstance().addCustomFileImporter( 164 new SampledAudioFileImporter()); 111 EcosystemManager.getDragAndDropManager().addCustomFileImporter(new SampledAudioFileImporter()); 165 112 166 113 ApolloSystemLog.println(" Loading actions and agents..."); … … 202 149 * When invoked, the apollo setting frame is loaded and parsed... setting apollo-specific settings. 203 150 */ 204 public static void loadSettings() {205 151 public static void loadSettings() 152 { 206 153 // Load apollo settings frame from the default profile 207 154 Frame profile = FrameIO.LoadProfile(UserSettings.DEFAULT_PROFILE_NAME); … … 241 188 } 242 189 243 private static Mutable.Integer stripNameValueStringInteger(String namevalue) { 190 private static Mutable.Integer stripNameValueStringInteger(String namevalue) 191 { 244 192 assert (namevalue != null); 245 193 int valueIndex = namevalue.indexOf(':') + 1; … … 259 207 * Releases all resources currently used by the SampledAudioManager. 260 208 */ 261 public static void shutdown() {262 209 public static void shutdown() 210 { 263 211 ApolloSystemLog.println("Saving banks..."); 264 212 SoundDesk.getInstance().saveMasterMix(); … … 280 228 * True if has initialized. 281 229 */ 282 public static boolean isInitialized() { 230 public static boolean isInitialized() 231 { 283 232 return hasInitialized; 284 233 } … … 294 243 * @param args 295 244 */ 296 public static void main(String[] args) { 297 298 try { 299 UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); 300 } 301 catch (Exception e) { 302 e.printStackTrace(); 303 return; 304 } 245 public static void main(String[] args) 246 { 247 if (Browser.ECOSYSTEM_TYPE == Ecosystem.Swing) { 248 try { 249 UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); 250 } catch (Exception e) { 251 e.printStackTrace(); 252 return; 253 } 254 } 255 256 // Window icon must be set before initialisation 257 GraphicsManager.setWindowIcon(APOLLO_ICON); 305 258 306 259 // Run expeditee … … 308 261 309 262 // Initialize apollo 310 SwingUtilities.invokeLater(newRunnable() {311 public void run() {263 EcosystemManager.getMiscManager().runOnGIOThread(new BlockingRunnable() { 264 public void execute() { 312 265 ApolloSystem.initialize(); 313 266 }
Note:
See TracChangeset
for help on using the changeset viewer.