source: trunk/src/org/expeditee/gio/javafx/JavaFXMiscManager.java@ 1097

Last change on this file since 1097 was 1097, checked in by davidb, 6 years ago

Newly structured files from Corey's work on logic/graphics separation

File size: 4.6 KB
Line 
1package org.expeditee.gio.javafx;
2
3import org.expeditee.gio.ClipboardManager;
4import org.expeditee.gio.DragAndDropManager;
5import org.expeditee.gio.EcosystemManager;
6import org.expeditee.gio.FontManager;
7import org.expeditee.gio.GraphicsManager;
8import org.expeditee.gio.ImageManager;
9import org.expeditee.gio.InputManager;
10import org.expeditee.gio.MiscManager;
11import org.expeditee.gio.TextLayoutManager;
12
13import javafx.application.Platform;
14import javafx.beans.property.ReadOnlyProperty;
15import javafx.beans.value.ChangeListener;
16import javafx.beans.value.ObservableValue;
17
18public class JavaFXMiscManager extends MiscManager {
19
20 /** Singleton instance. */
21 private static JavaFXMiscManager _instance;
22
23 /** Singleton instantiator. */
24 public static JavaFXMiscManager getInstance()
25 {
26 if (_instance == null) _instance = new JavaFXMiscManager();
27
28 return _instance;
29 }
30
31 /** Gets the JavaFXClipboardManager if it being used. */
32 public static JavaFXClipboardManager getIfUsingJavaFXClipboardManager()
33 {
34 ClipboardManager manager = EcosystemManager.getClipboardManager();
35 if (manager instanceof JavaFXClipboardManager) {
36 return (JavaFXClipboardManager) manager;
37 }
38
39 return null;
40 }
41
42 /** Gets the JavaFXDragAndDropManager if it being used. */
43 public static JavaFXDragAndDropManager getIfUsingJavaFXDragAndDropManager()
44 {
45 DragAndDropManager manager = EcosystemManager.getDragAndDropManager();
46 if (manager instanceof JavaFXDragAndDropManager) {
47 return (JavaFXDragAndDropManager) manager;
48 }
49
50 return null;
51 }
52
53 /** Gets the JavaFXFontManager if it being used. */
54 public static JavaFXFontManager getIfUsingJavaFXFontManager()
55 {
56 FontManager manager = EcosystemManager.getFontManager();
57 if (manager instanceof JavaFXFontManager) {
58 return (JavaFXFontManager) manager;
59 }
60
61 return null;
62 }
63
64 /** Gets the JavaFXGraphicsManager if it being used. */
65 public static JavaFXGraphicsManager getIfUsingJavaFXGraphicsManager()
66 {
67 GraphicsManager manager = EcosystemManager.getGraphicsManager();
68 if (manager instanceof JavaFXGraphicsManager) {
69 return (JavaFXGraphicsManager) manager;
70 }
71
72 return null;
73 }
74
75 /** Gets the JavaFXImageManager if it being used. */
76 public static JavaFXImageManager getIfUsingJavaFXImageManager()
77 {
78 ImageManager manager = EcosystemManager.getImageManager();
79 if (manager instanceof JavaFXImageManager) {
80 return (JavaFXImageManager) manager;
81 }
82
83 return null;
84 }
85
86 /** Gets the JavaFXInputManager if it being used. */
87 public static JavaFXInputManager getIfUsingJavaFXInputManager()
88 {
89 InputManager manager = EcosystemManager.getInputManager();
90 if (manager instanceof JavaFXInputManager) {
91 return (JavaFXInputManager) manager;
92 }
93
94 return null;
95 }
96
97 /** Gets the JavaFXMiscManager if it being used. */
98 public static JavaFXMiscManager getIfUsingJavaFXMiscManager()
99 {
100 MiscManager manager = EcosystemManager.getMiscManager();
101 if (manager instanceof JavaFXMiscManager) {
102 return (JavaFXMiscManager) manager;
103 }
104
105 return null;
106 }
107
108 /** Gets the JavaFXTextLayoutManager if it being used. */
109 public static JavaFXTextLayoutManager getIfUsingJavaFXTextLayoutManager()
110 {
111 TextLayoutManager manager = EcosystemManager.getTextLayoutManager();
112 if (manager instanceof JavaFXTextLayoutManager) {
113 return (JavaFXTextLayoutManager) manager;
114 }
115
116 return null;
117 }
118
119 /** Blocks until the value of the given property equals the given value. */
120 public static <T> void waitUntilPropertyEquals(ReadOnlyProperty<? extends T> property, T value)
121 {
122 if (property.getValue().equals(value)) return;
123
124 ChangeListener<T> listener = new ChangeListener<T>() {
125 @Override
126 public void changed(ObservableValue<? extends T> observable, T oldValue, T newValue) {
127 if (newValue == value || newValue.equals(value)) {
128 synchronized (this) {
129 notify();
130 }
131 }
132 }
133 };
134
135 synchronized (listener) {
136 property.addListener(listener);
137 while (!property.getValue().equals(value)) {
138 try {
139 listener.wait();
140 } catch (InterruptedException e) {
141 }
142 }
143 property.removeListener(listener);
144 }
145 }
146
147 @Override
148 public void beep() {
149 // TODO Auto-generated method stub
150
151 }
152
153 @Override
154 public boolean browse(String url) {
155 // TODO Auto-generated method stub
156 return false;
157 }
158
159 @Override
160 public String print(String file) {
161 // TODO Auto-generated method stub
162 return null;
163 }
164
165 @Override
166 public String open(String file) {
167 // TODO Auto-generated method stub
168 return null;
169 }
170
171 @Override
172 protected void scheduleRunnable(Runnable routine)
173 {
174 Platform.runLater(routine);
175 }
176
177 @Override
178 protected boolean isGIOThread()
179 {
180 return Platform.isFxApplicationThread();
181 }
182
183}
Note: See TracBrowser for help on using the repository browser.