Skip to content

Commit 877c8cb

Browse files
author
Wenjun Che
committed
ADAP-16: Docking example
1 parent 82758c9 commit 877c8cb

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

src/main/java/com/openfin/desktop/demo/OpenFinDockingDemo.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -205,42 +205,49 @@ public void run() {
205205

206206
private void dockToStartupApp() {
207207
try {
208-
Window w = Window.wrap(startupUuid, javaWindowName, controller);
209-
w.joinGroup(Window.wrap(startupUuid, startupUuid, controller));
208+
externalWindowObserver = new ExternalWindowObserver(controller.getPort(), startupUuid, javaWindowName, jFrame,
209+
new AckListener() {
210+
@Override
211+
public void onSuccess(Ack ack) {
212+
if (ack.isSuccessful()) {
213+
try {
214+
Window w = Window.wrap(startupUuid, javaWindowName, controller);
215+
w.joinGroup(Window.wrap(startupUuid, startupUuid, controller));
216+
dock.setEnabled(false);
217+
undock.setEnabled(true);
218+
} catch (Exception e) {
219+
e.printStackTrace();
220+
}
221+
}
222+
}
223+
@Override
224+
public void onError(Ack ack) {
225+
}
226+
});
210227
} catch (Exception e) {
211228
e.printStackTrace();
212229
}
213-
dock.setEnabled(false);
214-
undock.setEnabled(true);
215230
}
216231

217232
private void undockFromStartupApp() {
218233
try {
219234
Window w = Window.wrap(startupUuid, javaWindowName, controller);
220235
w.leaveGroup();
236+
externalWindowObserver.dispose();
221237
} catch (Exception e) {
222238
e.printStackTrace();
223239
}
224240
dock.setEnabled(true);
225241
undock.setEnabled(false);
226242
}
227243

228-
private void registerExternalWindow() {
229-
try {
230-
externalWindowObserver = new ExternalWindowObserver(controller.getPort(), startupUuid, javaWindowName, jFrame);
231-
} catch (Exception e) {
232-
e.printStackTrace();
233-
}
234-
235-
}
236244
private void runStartAction() {
237245
try {
238246
DesktopStateListener listener = new DesktopStateListener() {
239247
@Override
240248
public void onReady() {
241249
updateMessagePanel("Connection authorized.");
242250
setMainButtonsEnabled(true);
243-
registerExternalWindow();
244251
}
245252

246253
@Override

0 commit comments

Comments
 (0)