Author: vyemialyanchyk
Date: 2008-01-21 12:07:48 -0500 (Mon, 21 Jan 2008)
New Revision: 5847
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurations.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurationsListener.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/node/ConfigurationListNode.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1422
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurations.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurations.java 2008-01-21
17:06:32 UTC (rev 5846)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurations.java 2008-01-21
17:07:48 UTC (rev 5847)
@@ -64,6 +64,9 @@
*/
public class KnownConfigurations {
+ // flag broadcast updates to all listeners - true by default
+ // for prevent broadcasting set this flag into false
+ private boolean broadcastFlag = true;
// TODO: is the best way for the querypage model ?
private QueryPageModel queryPages = new QueryPageModel();
private List configurationListeners = new ArrayList();
@@ -138,7 +141,7 @@
* Add the repository to the receiver's list of known configurations. Doing this
will enable
*
*/
- public ConsoleConfiguration addConfiguration(final ConsoleConfiguration configuration,
boolean broadcast) {
+ public ConsoleConfiguration addConfiguration(final ConsoleConfiguration configuration)
{
// Check the cache for an equivalent instance and if there is one, just update the
cache
ConsoleConfiguration existingConfiguration =
internalGetRepository(configuration.getName() );
if (existingConfiguration == null) {
@@ -150,7 +153,7 @@
existingConfiguration = configuration;
}
- if (broadcast) {
+ if (broadcastFlag) {
fireNotification(new Notification() {
public void notify(KnownConfigurationsListener listener) {
listener.configurationAdded(configuration);
@@ -164,22 +167,24 @@
ConsoleConfiguration[] cfgs = getConfigurations();
for (int i = 0; i < cfgs.length; i++) {
ConsoleConfiguration configuration = cfgs[i];
- removeConfiguration(configuration, false);
+ removeConfiguration(configuration);
}
}
// added forUpdate as a workaround for letting listeners know it is done to update the
configuration so they don't cause removal issues.
- public void removeConfiguration(final ConsoleConfiguration configuration, final boolean
forUpdate) {
+ public void removeConfiguration(final ConsoleConfiguration configuration) {
ConsoleConfiguration oldConfig = (ConsoleConfiguration)
getRepositoriesMap().remove(configuration.getName() );
if (oldConfig != null) {
oldConfig.removeConsoleConfigurationListener(sfListener);
- fireNotification(new Notification() {
- public void notify(KnownConfigurationsListener listener) {
- listener.configurationRemoved(configuration, forUpdate);
- }
- });
+ if (broadcastFlag) {
+ fireNotification(new Notification() {
+ public void notify(KnownConfigurationsListener listener) {
+ listener.configurationRemoved(configuration);
+ }
+ });
+ }
oldConfig.reset();
removeLoggingStream( oldConfig );
@@ -347,5 +352,19 @@
return queryParameters;
}
+ public boolean getBroadcast() {
+ return this.broadcastFlag;
+ }
+ public void setBroadcast(boolean broadcastFlag) {
+ this.broadcastFlag = broadcastFlag;
+ if (broadcastFlag) {
+ fireNotification(new Notification() {
+ public void notify(KnownConfigurationsListener listener) {
+ listener.configurationRefreshAll();
+ }
+ });
+ }
+ }
+
}
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurationsListener.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurationsListener.java 2008-01-21
17:06:32 UTC (rev 5846)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/KnownConfigurationsListener.java 2008-01-21
17:07:48 UTC (rev 5847)
@@ -31,5 +31,7 @@
public void sessionFactoryClosing(ConsoleConfiguration configuration, SessionFactory
closingFactory);
- public void configurationRemoved(ConsoleConfiguration root, boolean forUpdate);
+ public void configurationRemoved(ConsoleConfiguration root);
+
+ public void configurationRefreshAll();
}
\ No newline at end of file
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/node/ConfigurationListNode.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/node/ConfigurationListNode.java 2008-01-21
17:06:32 UTC (rev 5846)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/node/ConfigurationListNode.java 2008-01-21
17:07:48 UTC (rev 5847)
@@ -52,10 +52,14 @@
childrenCreated=false;
}
- public void configurationRemoved(ConsoleConfiguration root, boolean forUpdate) {
+ public void configurationRemoved(ConsoleConfiguration root) {
markChildrenForReload();
}
+ public void configurationRefreshAll() {
+ markChildrenForReload();
+ }
+
public void sessionFactoryClosing(ConsoleConfiguration configuration, SessionFactory
closingFactory) {
}