Skip to content

Commit c9ad8da

Browse files
committed
Issue #109: Expand the connection in the view on project create
1 parent 9262436 commit c9ad8da

File tree

2 files changed

+35
-22
lines changed

2 files changed

+35
-22
lines changed

dev/com.ibm.microclimate.ui/src/com/ibm/microclimate/ui/internal/views/ViewHelper.java

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2018 IBM Corporation and others.
2+
* Copyright (c) 2018, 2019 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -16,6 +16,7 @@
1616
import org.eclipse.core.resources.ResourcesPlugin;
1717
import org.eclipse.swt.widgets.Display;
1818
import org.eclipse.ui.IViewPart;
19+
import org.eclipse.ui.IViewReference;
1920
import org.eclipse.ui.IWorkbenchPage;
2021
import org.eclipse.ui.IWorkbenchPart;
2122
import org.eclipse.ui.IWorkbenchWindow;
@@ -56,7 +57,9 @@ public static void expandConnection(MicroclimateConnection connection) {
5657
IViewPart view = getViewPart(MicroclimateExplorerView.VIEW_ID);
5758
if (view instanceof CommonNavigator) {
5859
CommonViewer viewer = ((CommonNavigator)view).getCommonViewer();
59-
viewer.expandToLevel(2);
60+
if (!viewer.getExpandedState(connection)) {
61+
viewer.expandToLevel(2);
62+
}
6063
}
6164
}
6265
}
@@ -89,14 +92,15 @@ public static void refreshNavigatorView(String viewId, Object element) {
8992
}
9093

9194
public static IViewPart getViewPart(String viewId) {
92-
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
93-
if (window != null) {
94-
IWorkbenchPage page = window.getActivePage();
95-
if (page != null) {
96-
return page.findView(viewId);
97-
}
98-
}
99-
return null;
95+
for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) {
96+
for (IWorkbenchPage page : window.getPages()) {
97+
for (IViewReference reference : page.getViewReferences()) {
98+
if (viewId.equals(reference.getId())) {
99+
return reference.getView(false);
100+
}
101+
}
102+
}
103+
}
104+
return null;
100105
}
101-
102106
}

dev/com.ibm.microclimate.ui/src/com/ibm/microclimate/ui/internal/wizards/NewMicroclimateProjectWizard.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import org.eclipse.jface.wizard.Wizard;
1717
import org.eclipse.osgi.util.NLS;
18+
import org.eclipse.swt.widgets.Display;
1819

1920
import com.ibm.microclimate.core.internal.MCLogger;
2021
import com.ibm.microclimate.core.internal.MCUtil;
@@ -24,6 +25,7 @@
2425
import com.ibm.microclimate.core.internal.console.ProjectTemplateInfo;
2526
import com.ibm.microclimate.ui.internal.actions.ImportProjectAction;
2627
import com.ibm.microclimate.ui.internal.messages.Messages;
28+
import com.ibm.microclimate.ui.internal.views.ViewHelper;
2729

2830
public class NewMicroclimateProjectWizard extends Wizard {
2931

@@ -57,21 +59,28 @@ public boolean performFinish() {
5759
}
5860

5961
try {
60-
if (newProjectPage.importProject()) {
61-
connection.getMCSocket().registerProjectCreateHandler(name, new IOperationHandler() {
62-
@Override
63-
public void operationComplete(boolean passed, String msg) {
64-
connection.getMCSocket().deregisterProjectCreateHandler(name);
65-
if (passed) {
66-
MicroclimateApplication app = connection.getAppByName(name);
67-
if (app != null) {
62+
final boolean importProject = newProjectPage.importProject();
63+
connection.getMCSocket().registerProjectCreateHandler(name, new IOperationHandler() {
64+
@Override
65+
public void operationComplete(boolean passed, String msg) {
66+
connection.getMCSocket().deregisterProjectCreateHandler(name);
67+
if (passed) {
68+
MicroclimateApplication app = connection.getAppByName(name);
69+
if (app != null) {
70+
Display.getDefault().asyncExec(new Runnable() {
71+
@Override
72+
public void run() {
73+
ViewHelper.expandConnection(connection);
74+
}
75+
});
76+
if (importProject) {
6877
ImportProjectAction.importProject(app);
69-
return;
7078
}
79+
return;
7180
}
7281
}
73-
});
74-
}
82+
}
83+
});
7584
connection.requestProjectCreate(info, name);
7685
return true;
7786
} catch (Exception e) {

0 commit comments

Comments
 (0)