diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java | 330 |
1 files changed, 165 insertions, 165 deletions
diff --git a/plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java b/plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java index 251ecd1d50..bb9770ab4a 100644 --- a/plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java +++ b/plugins/org.eclipse.emf.cdo.dawn/src/org/eclipse/emf/cdo/dawn/editors/impl/DawnAbstractEditorSupport.java @@ -1,165 +1,165 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are 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
- *
- * Contributors:
- * Martin Fluegge - initial API and implementation
- */
-package org.eclipse.emf.cdo.dawn.editors.impl;
-
-import org.eclipse.emf.cdo.dawn.editors.IDawnEditor;
-import org.eclipse.emf.cdo.dawn.editors.IDawnEditorSupport;
-import org.eclipse.emf.cdo.dawn.notifications.BasicDawnListener;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.transaction.CDOTransactionHandlerBase;
-import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
-import org.eclipse.emf.cdo.view.CDOView;
-
-import java.util.List;
-
-/**
- * @author Martin Fluegge
- */
-public abstract class DawnAbstractEditorSupport implements IDawnEditorSupport
-{
- private final IDawnEditor editor;
-
- private CDOView view;
-
- private boolean dirty;
-
- public CDOView getView()
- {
- return view;
- }
-
- public void setView(CDOView view)
- {
- this.view = view;
- }
-
- public DawnAbstractEditorSupport(IDawnEditor editor)
- {
- this.editor = editor;
- }
-
- public void setDirty(boolean dirty)
- {
- this.dirty = dirty;
- }
-
- public boolean isDirty()
- {
- return dirty;
- }
-
- public IDawnEditor getEditor()
- {
- return editor;
- }
-
- /**
- * This method registeres the listeners for the DawnEditorSupport. Concrete implementaions can influence the
- * registered listeneres by implementing the methods
- * <ul>
- * <li>getBasicHandler()</li>
- * <li>getLockingHandler()</li>
- * </ul>
- * If one of these methods returns null the specific handler will not be registered and activated.
- *
- * @see #getBasicHandler()
- * @see #getLockingHandler()
- * @since 2.0
- */
- public void registerListeners()
- {
- BasicDawnListener listener = getBasicHandler();
- CDOView view = getView();
-
- if (listener != null)
- {
- view.addListener(listener);
- }
-
- BasicDawnListener lockingHandler = getLockingHandler();
- if (lockingHandler != null)
- {
- view.addListener(lockingHandler);
- view.options().setLockNotificationEnabled(true);
- }
-
- if (view instanceof CDOTransaction)
- {
- CDOTransaction transaction = (CDOTransaction)view;
- CDOTransactionHandlerBase transactionHandler = getTransactionHandler();
- if (transactionHandler != null)
- {
- transaction.addTransactionHandler(transactionHandler);
- }
- transaction.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.CDO);
- transaction.options().setAutoReleaseLocksEnabled(false);
- }
- }
-
- /**
- * Subclasses must implement this method to deliver a IDawnListener that implements the behavior for Session
- * invalidations. If the method returns null, the handler will not be registered.
- *
- * @since 2.0
- */
- protected abstract BasicDawnListener getBasicHandler();
-
- /**
- * Subclasses must implement this method to deliver a IDawnListener that implements the behavior for remote locking
- * notifications. If the method returns null, the handler will not be registered.
- *
- * @since 2.0
- */
- protected abstract BasicDawnListener getLockingHandler();
-
- /**
- * Subclasses must implement this method to deliver a CDOTransactionHandlerBase that implements the behavior for
- * remote changes notifications. If the method returns null, the handler will not be registered.
- *
- * @since 2.0
- */
- protected abstract CDOTransactionHandlerBase getTransactionHandler();
-
- /**
- * @since 1.0
- */
- public void rollback()
- {
- CDOView view = getEditor().getView();
-
- if (view != null && view instanceof CDOTransaction)
- {
- ((CDOTransaction)view).rollback();
- }
- }
-
- /**
- * @since 2.0
- */
- public void lockObjects(List<Object> objectsToBeLocked)
- {
- for (Object objectToBeLocked : objectsToBeLocked)
- {
- lockObject(objectToBeLocked);
- }
- }
-
- /**
- * @since 2.0
- */
- public void unlockObjects(List<Object> objectsToBeLocked)
- {
- for (Object objectToBeUnlocked : objectsToBeLocked)
- {
- unlockObject(objectToBeUnlocked);
- }
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are 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 + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.editors.impl; + +import org.eclipse.emf.cdo.dawn.editors.IDawnEditor; +import org.eclipse.emf.cdo.dawn.editors.IDawnEditorSupport; +import org.eclipse.emf.cdo.dawn.notifications.BasicDawnListener; +import org.eclipse.emf.cdo.transaction.CDOTransaction; +import org.eclipse.emf.cdo.transaction.CDOTransactionHandlerBase; +import org.eclipse.emf.cdo.view.CDOAdapterPolicy; +import org.eclipse.emf.cdo.view.CDOView; + +import java.util.List; + +/** + * @author Martin Fluegge + */ +public abstract class DawnAbstractEditorSupport implements IDawnEditorSupport +{ + private final IDawnEditor editor; + + private CDOView view; + + private boolean dirty; + + public CDOView getView() + { + return view; + } + + public void setView(CDOView view) + { + this.view = view; + } + + public DawnAbstractEditorSupport(IDawnEditor editor) + { + this.editor = editor; + } + + public void setDirty(boolean dirty) + { + this.dirty = dirty; + } + + public boolean isDirty() + { + return dirty; + } + + public IDawnEditor getEditor() + { + return editor; + } + + /** + * This method registeres the listeners for the DawnEditorSupport. Concrete implementaions can influence the + * registered listeneres by implementing the methods + * <ul> + * <li>getBasicHandler()</li> + * <li>getLockingHandler()</li> + * </ul> + * If one of these methods returns null the specific handler will not be registered and activated. + * + * @see #getBasicHandler() + * @see #getLockingHandler() + * @since 2.0 + */ + public void registerListeners() + { + BasicDawnListener listener = getBasicHandler(); + CDOView view = getView(); + + if (listener != null) + { + view.addListener(listener); + } + + BasicDawnListener lockingHandler = getLockingHandler(); + if (lockingHandler != null) + { + view.addListener(lockingHandler); + view.options().setLockNotificationEnabled(true); + } + + if (view instanceof CDOTransaction) + { + CDOTransaction transaction = (CDOTransaction)view; + CDOTransactionHandlerBase transactionHandler = getTransactionHandler(); + if (transactionHandler != null) + { + transaction.addTransactionHandler(transactionHandler); + } + transaction.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.CDO); + transaction.options().setAutoReleaseLocksEnabled(false); + } + } + + /** + * Subclasses must implement this method to deliver a IDawnListener that implements the behavior for Session + * invalidations. If the method returns null, the handler will not be registered. + * + * @since 2.0 + */ + protected abstract BasicDawnListener getBasicHandler(); + + /** + * Subclasses must implement this method to deliver a IDawnListener that implements the behavior for remote locking + * notifications. If the method returns null, the handler will not be registered. + * + * @since 2.0 + */ + protected abstract BasicDawnListener getLockingHandler(); + + /** + * Subclasses must implement this method to deliver a CDOTransactionHandlerBase that implements the behavior for + * remote changes notifications. If the method returns null, the handler will not be registered. + * + * @since 2.0 + */ + protected abstract CDOTransactionHandlerBase getTransactionHandler(); + + /** + * @since 1.0 + */ + public void rollback() + { + CDOView view = getEditor().getView(); + + if (view != null && view instanceof CDOTransaction) + { + ((CDOTransaction)view).rollback(); + } + } + + /** + * @since 2.0 + */ + public void lockObjects(List<Object> objectsToBeLocked) + { + for (Object objectToBeLocked : objectsToBeLocked) + { + lockObject(objectToBeLocked); + } + } + + /** + * @since 2.0 + */ + public void unlockObjects(List<Object> objectsToBeLocked) + { + for (Object objectToBeUnlocked : objectsToBeLocked) + { + unlockObject(objectToBeUnlocked); + } + } +} |