Author: max.andersen(a)jboss.com
Date: 2012-06-01 09:23:38 -0400 (Fri, 01 Jun 2012)
New Revision: 41626
Modified:
branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java
Log:
JBIDE-12077 UI Freeze removed
Modified:
branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java
===================================================================
---
branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java 2012-06-01
13:14:28 UTC (rev 41625)
+++
branches/jbosstools-3.3.x/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ShowInWelcomePageActionProvider.java 2012-06-01
13:23:38 UTC (rev 41626)
@@ -12,7 +12,11 @@
import java.net.URL;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
@@ -20,6 +24,7 @@
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.internal.browser.ImageResource;
import org.eclipse.ui.navigator.CommonActionProvider;
import org.eclipse.ui.navigator.CommonViewer;
@@ -63,10 +68,20 @@
action = new Action() {
@Override
public void run() {
- String url = getUrl();
- if(url!=null) {
- JBTWebLaunchableClient.checkedCreateInternalBrowser(url, getServer().getName(),
JBossServerUIPlugin.PLUGIN_ID, JBossServerUIPlugin.getDefault().getLog());
- }
+ new Job("Fetching Welcome Page URL") {
+ public IStatus run(IProgressMonitor monitor) {
+ // Get the url in a background thread to not freeze the UI
+ final String url = getUrl();
+ if(url!=null) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ JBTWebLaunchableClient.checkedCreateInternalBrowser(url, getServer().getName(),
JBossServerUIPlugin.PLUGIN_ID, JBossServerUIPlugin.getDefault().getLog());
+ }
+ });
+ }
+ return Status.OK_STATUS;
+ }
+ }.schedule();
}
};
action.setText(ServerActionMessages.OpenWithBrowser);
@@ -74,6 +89,14 @@
action.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER));
}
+ private boolean hasURL() {
+ IServer server = getServer();
+ ServerExtendedProperties props =
(ServerExtendedProperties)server.loadAdapter(ServerExtendedProperties.class, new
NullProgressMonitor());
+ if( props != null )
+ return props.hasWelcomePage();
+ return false;
+ }
+
private String getUrl() {
String urlString = null;
IServer server = getServer();
@@ -134,7 +157,7 @@
IContributionItem menuItem = CommonActionProviderUtils.getShowInQuickMenu(menu,
true);
if (menuItem instanceof MenuManager) {
((MenuManager) menuItem).add(action);
- action.setEnabled(getUrl()!=null);
+ action.setEnabled(hasURL());
}
}
}
Show replies by date