Author: max.andersen(a)jboss.com
Date: 2008-01-22 12:38:19 -0500 (Tue, 22 Jan 2008)
New Revision: 5881
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsolePlugin.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/AddConfigurationAction.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/KnownConfigurationsProvider.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1422 simpler and less noisy fix for avoiding
Cancel in AddConfiguration to refresh tree.
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsolePlugin.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsolePlugin.java 2008-01-22
17:12:34 UTC (rev 5880)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsolePlugin.java 2008-01-22
17:38:19 UTC (rev 5881)
@@ -57,6 +57,7 @@
import org.hibernate.console.KnownConfigurations;
import org.hibernate.console.KnownConfigurationsListener;
import org.hibernate.console.preferences.ConsoleConfigurationPreferences;
+import org.hibernate.eclipse.console.actions.AddConfigurationAction;
import org.hibernate.eclipse.console.workbench.ConfigurationAdapterFactory;
import org.hibernate.eclipse.criteriaeditor.CriteriaEditorInput;
import org.hibernate.eclipse.criteriaeditor.CriteriaEditorStorage;
@@ -176,15 +177,17 @@
}
public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- if(configuration.isWorkingCopy()) {
+ if(configuration.isWorkingCopy() || isTemporary(configuration)) {
return;
}
if(isConsoleConfiguration( configuration )) {
KnownConfigurations instance = KnownConfigurations.getInstance();
ConsoleConfiguration oldcfg = instance.find( configuration.getName() );
if(oldcfg!=null) {
- oldcfg.reset(); // reset it no matter what.
-
+ oldcfg.reset(); // reset it no matter what.
+ } else { // A new one!
+ ConsoleConfigurationPreferences adapter =
buildConfigurationPreferences(configuration);
+ instance.addConfiguration(new ConsoleConfiguration(adapter), true);
}
}
}
@@ -208,10 +211,24 @@
KnownConfigurations instance = KnownConfigurations.getInstance();
ConsoleConfigurationPreferences adapter =
buildConfigurationPreferences(configuration);
- instance.addConfiguration(new ConsoleConfiguration(adapter), true);
+ boolean temporary = isTemporary(configuration);
+ if(!temporary) {
+ instance.addConfiguration(new ConsoleConfiguration(adapter), true);
}
- }
+
+ }
+ }
+
+ private boolean isTemporary(ILaunchConfiguration configuration) {
+ boolean temporary = true;
+ try {
+ temporary = configuration.getAttribute(AddConfigurationAction.TEMPORARY_CONFIG_FLAG,
false);
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().showError( getShell(), "Problem to get
flag", e);
+ }
+ return temporary;
+ }
};
launchManager.addLaunchConfigurationListener( icl );
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/AddConfigurationAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/AddConfigurationAction.java 2008-01-22
17:12:34 UTC (rev 5880)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/AddConfigurationAction.java 2008-01-22
17:38:19 UTC (rev 5881)
@@ -36,9 +36,11 @@
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.PlatformUI;
import org.hibernate.console.ImageConstants;
+import org.hibernate.console.KnownConfigurations;
import org.hibernate.eclipse.console.HibernateConsolePlugin;
import org.hibernate.eclipse.console.utils.EclipseImages;
import org.hibernate.eclipse.console.utils.LaunchHelper;
+import org.hibernate.eclipse.console.views.KnownConfigurationsView;
import org.hibernate.eclipse.console.wizards.ConsoleConfigurationCreationWizard;
import org.hibernate.eclipse.launch.ICodeGenerationLaunchConstants;
@@ -50,6 +52,10 @@
*/
public class AddConfigurationAction extends Action {
+ /** Constant used to avoid unnecessary broadcast which is caused by the workaround for
having the ClassPathTab not throwing
+ * and exception on unsaved configurations */
+ public static final String TEMPORARY_CONFIG_FLAG = "_TEMPORARY_CONFIG_";
+
private final IViewPart part;
public AddConfigurationAction(IViewPart part) {
@@ -76,11 +82,15 @@
String launchName =
launchManager.generateUniqueLaunchConfigurationNameFrom("hibernate");
//ILaunchConfiguration[] launchConfigurations = launchManager.getLaunchConfigurations(
launchConfigurationType );
ILaunchConfigurationWorkingCopy wc = launchConfigurationType.newInstance(null,
launchName);
+ wc.setAttribute(TEMPORARY_CONFIG_FLAG, true);
ILaunchConfiguration saved = wc.doSave();
int i = DebugUITools.openLaunchConfigurationPropertiesDialog(
part.getSite().getShell(), saved, "org.eclipse.debug.ui.launchGroup.run" );
if(i!=Window.OK) {
saved.delete();
- }
+ } else {
+ wc.setAttribute(TEMPORARY_CONFIG_FLAG, (String)null); // Must be set to null since it
should never be in the actual saved configuration!
+ wc.doSave();
+ }
} catch (CoreException ce) {
HibernateConsolePlugin.getDefault().showError( part.getSite().getShell(),
"Problem adding a console configuration", ce);
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/KnownConfigurationsProvider.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/KnownConfigurationsProvider.java 2008-01-22
17:12:34 UTC (rev 5880)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/KnownConfigurationsProvider.java 2008-01-22
17:38:19 UTC (rev 5881)
@@ -75,7 +75,9 @@
}
public void configurationRemoved(ConsoleConfiguration root, boolean forUpdate) {
- refreshTree();
+ if (forUpdate) {
+ refreshTree();
+ }
}
protected IWorkbenchAdapter getAdapter(Object o) {