Author: vyemialyanchyk
Date: 2011-01-04 13:13:35 -0500 (Tue, 04 Jan 2011)
New Revision: 27882
Added:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ConsoleConfigReadyUseBaseAction.java
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/CloseConfigAction.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/SchemaExportAction.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleConfiguration.java
Log:
https://issues.jboss.org/browse/JBIDE-8027 &
https://issues.jboss.org/browse/JBIDE-8030 - fixed
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleConfiguration.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleConfiguration.java 2011-01-04
18:13:05 UTC (rev 27881)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleConfiguration.java 2011-01-04
18:13:35 UTC (rev 27882)
@@ -67,7 +67,11 @@
}
public Object execute(Command c) {
- return executionContext.execute(c);
+ // to avoid npe, in case when configuration closed from other thread during it's
load time
+ if (executionContext != null) {
+ return executionContext.execute(c);
+ }
+ return null;
}
public ConsoleConfigurationPreferences prefs = null;
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/CloseConfigAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/CloseConfigAction.java 2011-01-04
18:13:05 UTC (rev 27881)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/CloseConfigAction.java 2011-01-04
18:13:35 UTC (rev 27882)
@@ -13,7 +13,6 @@
import java.util.Iterator;
import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.ui.actions.SelectionListenerAction;
import org.hibernate.console.ConsoleConfiguration;
import org.hibernate.console.ImageConstants;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
@@ -23,22 +22,29 @@
/**
* @author Vitali Yemialyanchyk
*/
-public class CloseConfigAction extends SelectionListenerAction {
+public class CloseConfigAction extends ConsoleConfigReadyUseBaseAction {
public static final String CLOSECONFIG_ACTIONID = "actionid.closeconfig";
//$NON-NLS-1$
- private StructuredViewer viewer;
+ /**
+ * @param text
+ */
+ protected CloseConfigAction(String text) {
+ super(text);
+ setImageDescriptor(EclipseImages.getImageDescriptor(ImageConstants.CLOSE));
+ setId(CLOSECONFIG_ACTIONID);
+ init(null);
+ }
public CloseConfigAction(StructuredViewer sv) {
super(HibernateConsoleMessages.CloseConfigAction_close_config);
- setEnabled(false);
- this.viewer = sv;
setText(HibernateConsoleMessages.CloseConfigAction_close_config);
setImageDescriptor(EclipseImages.getImageDescriptor(ImageConstants.CLOSE));
setId(CLOSECONFIG_ACTIONID);
+ init(sv);
}
- public void run() {
+ public void doRun() {
doCloseConfig();
}
@@ -54,21 +60,4 @@
viewer.refresh(node);
}
}
-
- @Override
- public boolean isEnabled() {
- boolean res = false;
- for (Iterator<?> i = getSelectedNonResources().iterator(); i.hasNext();) {
- Object node = i.next();
- if (!(node instanceof ConsoleConfiguration)) {
- continue;
- }
- ConsoleConfiguration config = (ConsoleConfiguration) node;
- if (config.hasConfiguration()) {
- res = true;
- }
- }
- //return res;
- return true;
- }
}
Added:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ConsoleConfigReadyUseBaseAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ConsoleConfigReadyUseBaseAction.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/actions/ConsoleConfigReadyUseBaseAction.java 2011-01-04
18:13:35 UTC (rev 27882)
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.actions;
+
+import java.util.HashSet;
+import java.util.Iterator;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.hibernate.SessionFactory;
+import org.hibernate.console.ConsoleConfiguration;
+import org.hibernate.console.ConsoleConfigurationListener;
+import org.hibernate.console.KnownConfigurations;
+import org.hibernate.console.KnownConfigurationsListener;
+import org.hibernate.console.QueryPage;
+
+/**
+ * @author Vitali Yemialyanchyk
+ */
+public abstract class ConsoleConfigReadyUseBaseAction extends
ConsoleConfigurationBasedAction implements ConsoleConfigurationListener,
KnownConfigurationsListener {
+
+ protected StructuredViewer viewer;
+
+ private HashSet<ConsoleConfiguration> vecMonitorConsoleConfigs = new
HashSet<ConsoleConfiguration>();
+
+ protected ConsoleConfigReadyUseBaseAction(String text) {
+ super(text);
+ }
+
+ public void init(StructuredViewer viewer) {
+ this.viewer = viewer;
+ KnownConfigurations.getInstance().addConsoleConfigurationListener(this);
+ }
+
+ @SuppressWarnings("unchecked")
+ private HashSet<ConsoleConfiguration> cloneMonitorConsoleConfigs() {
+ return (HashSet<ConsoleConfiguration>)vecMonitorConsoleConfigs.clone();
+ }
+
+ @SuppressWarnings("rawtypes")
+ protected void clearCache() {
+ final IStructuredSelection selection = getStructuredSelection();
+ HashSet<ConsoleConfiguration> vecMonitorConsoleConfigsTmp =
+ cloneMonitorConsoleConfigs();
+ for (ConsoleConfiguration consoleConfig : vecMonitorConsoleConfigsTmp) {
+ consoleConfig.removeConsoleConfigurationListener(this);
+ }
+ vecMonitorConsoleConfigsTmp.clear();
+ for (Iterator i = selection.iterator(); i.hasNext(); ) {
+ Object obj = i.next();
+ if (obj instanceof ConsoleConfiguration) {
+ ConsoleConfiguration consoleConfig = (ConsoleConfiguration)obj;
+ vecMonitorConsoleConfigsTmp.add(consoleConfig);
+ consoleConfig.addConsoleConfigurationListener(this);
+ }
+ }
+ vecMonitorConsoleConfigs = vecMonitorConsoleConfigsTmp;
+ super.clearCache();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.hibernate.eclipse.console.actions.SessionFactoryBasedAction#updateState(org.hibernate.console.ConsoleConfiguration)
+ */
+ protected boolean updateState(ConsoleConfiguration ccfg) {
+ return ccfg.hasConfiguration();
+ }
+
+ public void updateEnableState() {
+ selectionChanged(getStructuredSelection());
+ }
+
+ public void queryPageCreated(QueryPage qp) {
+ }
+
+ public void sessionFactoryBuilt(ConsoleConfiguration ccfg, SessionFactory
builtSessionFactory) {
+ }
+
+ public void sessionFactoryClosing(ConsoleConfiguration ccfg, SessionFactory
aboutToCloseFactory) {
+ }
+
+ public void configurationBuilt(ConsoleConfiguration ccfg) {
+ updateEnableState();
+ }
+
+ public void configurationReset(ConsoleConfiguration ccfg) {
+ updateEnableState();
+ }
+
+ public void configurationAdded(ConsoleConfiguration root) {
+ }
+
+ public void configurationRemoved(ConsoleConfiguration ccfg, boolean forUpdate) {
+ if (vecMonitorConsoleConfigs.remove(ccfg)) {
+ ccfg.removeConsoleConfigurationListener(this);
+ }
+ }
+}
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/SchemaExportAction.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/SchemaExportAction.java 2011-01-04
18:13:05 UTC (rev 27881)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/SchemaExportAction.java 2011-01-04
18:13:35 UTC (rev 27882)
@@ -21,58 +21,46 @@
*/
package org.hibernate.eclipse.console.views;
-import java.util.HashSet;
import java.util.Iterator;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Shell;
import org.hibernate.HibernateException;
-import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.console.ConsoleConfiguration;
-import org.hibernate.console.ConsoleConfigurationListener;
-import org.hibernate.console.KnownConfigurations;
-import org.hibernate.console.KnownConfigurationsListener;
-import org.hibernate.console.QueryPage;
import org.hibernate.console.execution.ExecutionContext.Command;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.HibernateConsolePlugin;
-import org.hibernate.eclipse.console.actions.ConsoleConfigurationBasedAction;
+import org.hibernate.eclipse.console.actions.ConsoleConfigReadyUseBaseAction;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
* @author max
*
*/
-public class SchemaExportAction extends ConsoleConfigurationBasedAction implements
ConsoleConfigurationListener, KnownConfigurationsListener {
+public class SchemaExportAction extends ConsoleConfigReadyUseBaseAction {
public static final String SCHEMAEXPORT_ACTIONID = "actionid.schemaexport";
//$NON-NLS-1$
- private StructuredViewer viewer;
-
- private HashSet<ConsoleConfiguration> vecMonitorConsoleConfigs = new
HashSet<ConsoleConfiguration>();
-
/**
* @param text
*/
protected SchemaExportAction(String text) {
- super( text );
+ super(text);
setId(SCHEMAEXPORT_ACTIONID);
- KnownConfigurations.getInstance().addConsoleConfigurationListener(this);
+ init(null);
}
/**
* @param selectionProvider
*/
public SchemaExportAction(StructuredViewer selectionProvider) {
- super( HibernateConsoleMessages.SchemaExportAction_run_schemaexport );
- this.viewer = selectionProvider;
+ super(HibernateConsoleMessages.SchemaExportAction_run_schemaexport);
setId(SCHEMAEXPORT_ACTIONID);
- KnownConfigurations.getInstance().addConsoleConfigurationListener(this);
+ init(selectionProvider);
}
/**
@@ -141,69 +129,4 @@
}
}
}
-
- @SuppressWarnings("unchecked")
- private HashSet<ConsoleConfiguration> cloneMonitorConsoleConfigs() {
- return (HashSet<ConsoleConfiguration>)vecMonitorConsoleConfigs.clone();
- }
-
- @SuppressWarnings("rawtypes")
- protected void clearCache() {
- final IStructuredSelection selection = getStructuredSelection();
- HashSet<ConsoleConfiguration> vecMonitorConsoleConfigsTmp =
- cloneMonitorConsoleConfigs();
- for (ConsoleConfiguration consoleConfig : vecMonitorConsoleConfigsTmp) {
- consoleConfig.removeConsoleConfigurationListener(this);
- }
- vecMonitorConsoleConfigsTmp.clear();
- for (Iterator i = selection.iterator(); i.hasNext(); ) {
- Object obj = i.next();
- if (obj instanceof ConsoleConfiguration) {
- ConsoleConfiguration consoleConfig = (ConsoleConfiguration)obj;
- vecMonitorConsoleConfigsTmp.add(consoleConfig);
- consoleConfig.addConsoleConfigurationListener(this);
- }
- }
- vecMonitorConsoleConfigs = vecMonitorConsoleConfigsTmp;
- super.clearCache();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
org.hibernate.eclipse.console.actions.SessionFactoryBasedAction#updateState(org.hibernate.console.ConsoleConfiguration)
- */
- protected boolean updateState(ConsoleConfiguration ccfg) {
- return ccfg.hasConfiguration();
- }
-
- public void updateEnableState() {
- selectionChanged(getStructuredSelection());
- }
-
- public void queryPageCreated(QueryPage qp) {
- }
-
- public void sessionFactoryBuilt(ConsoleConfiguration ccfg, SessionFactory
builtSessionFactory) {
- }
-
- public void sessionFactoryClosing(ConsoleConfiguration ccfg, SessionFactory
aboutToCloseFactory) {
- }
-
- public void configurationBuilt(ConsoleConfiguration ccfg) {
- updateEnableState();
- }
-
- public void configurationReset(ConsoleConfiguration ccfg) {
- updateEnableState();
- }
-
- public void configurationAdded(ConsoleConfiguration root) {
- }
-
- public void configurationRemoved(ConsoleConfiguration ccfg, boolean forUpdate) {
- if (vecMonitorConsoleConfigs.remove(ccfg)) {
- ccfg.removeConsoleConfigurationListener(this);
- }
- }
}