Skip to content
Snippets Groups Projects
Commit 614bf90b authored by Florian Hölzl's avatar Florian Hölzl
Browse files

moved from org.unicase to org.eclipse.emf.emfstore, org.eclipse.emf.ecp

parent 5542d3e9
No related branches found
No related tags found
No related merge requests found
Showing
with 91 additions and 184 deletions
......@@ -16,11 +16,4 @@
class="org.fortiss.tooling.base.model.BasePackage"
genModel="model/base.genmodel"/>
</extension>
<extension
point="org.eclipse.emf.ecp.model.ecppackage">
<modelPackage
modelPackage="http://www.fortiss.org/tooling/base">
</modelPackage>
</extension>
</plugin>
......@@ -7,6 +7,7 @@ Bundle-Activator: org.fortiss.tooling.kernel.ToolingKernelActivator
Bundle-Vendor: fortiss
Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
org.eclipse.core.databinding;visibility:=reexport,
org.eclipse.jface.databinding;bundle-version="1.4.0";visibility:=reexport,
org.eclipse.ui;visibility:=reexport,
org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100";visibility:=reexport,
org.eclipse.emf.ecore;bundle-version="2.6.1";visibility:=reexport,
......@@ -15,9 +16,9 @@ Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
org.conqat.ide.commons.ui;bundle-version="2.7.0";visibility:=reexport,
org.conqat.ide.commons.gef;bundle-version="2.7.0",
org.eclipse.jdt.ui;bundle-version="3.6.2",
org.eclipse.emf.emfstore.server;bundle-version="0.7.3";visibility:=reexport,
org.eclipse.emf.ecp.common;bundle-version="0.7.3";visibility:=reexport,
org.eclipse.emf.emfstore.client;bundle-version="0.7.3";visibility:=reexport
org.eclipse.emf.emfstore.server;bundle-version="0.7.3",
org.eclipse.emf.emfstore.client;bundle-version="0.7.3",
org.eclipse.emf.emfstore.client.ui;bundle-version="0.7.3"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: org.fortiss.tooling.kernel;uses:="org.eclipse.jface.resource,org.eclipse.ui.plugin,org.osgi.framework",
......
......@@ -89,31 +89,36 @@
variable="activeMenuSelection">
<iterate>
<adapt
type="org.unicase.workspace.ProjectSpace">
type="org.eclipse.emf.emfstore.client.model.ProjectSpace">
</adapt>
</iterate>
</with>
</visibleWhen>
<command
commandId="org.unicase.workspace.ui.commitProject"
commandId="org.eclipse.emf.emfstore.client.ui.commitProject"
label="Commit..."
style="push">
</command>
<command
commandId="org.unicase.workspace.ui.updateProject"
commandId="org.eclipse.emf.emfstore.client.ui.updateProject"
label="Update to HEAD"
style="push">
</command>
<command
commandId="org.unicase.workspace.ui.updateProjectVersion"
commandId="org.eclipse.emf.emfstore.client.ui.updateProjectVersion"
label="Update to Version..."
style="push">
</command>
<command
commandId="org.unicase.workspace.ui.revert"
commandId="org.eclipse.emf.emfstore.client.ui.revert"
label="Revert"
style="push">
</command>
<command
commandId="org.eclipse.emf.emfstore.client.ui.deleteProject"
label="Delete Local Project"
style="push">
</command>
</menu>
</menuContribution>
</extension>
......@@ -177,12 +182,6 @@
</propertySection>
</propertySections>
</extension>
<extension
point="org.eclipse.emf.ecp.model.ecppackage">
<modelPackage
modelPackage="http://www.fortiss.org/tooling/kernel">
</modelPackage>
</extension>
<extension
point="org.fortiss.tooling.kernel.modelElementHandler">
<modelElementHandler
......
......@@ -19,6 +19,7 @@ package org.fortiss.tooling.kernel.internal;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.emfstore.client.model.ProjectSpace;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
......@@ -100,7 +101,9 @@ public class ActionService implements IActionService {
if (selectedObject instanceof IRemovable) {
return ((IRemovable) selectedObject).canRemove();
}
return selectedObject.eContainer() != null;
// ProjectSpace must be deleted with repository command
return !(selectedObject instanceof ProjectSpace)
&& selectedObject.eContainer() != null;
}
return false;
}
......
......@@ -20,21 +20,15 @@ package org.fortiss.tooling.kernel.internal;
import java.util.HashMap;
import java.util.Map;
import org.conqat.ide.commons.ui.logging.LoggingUtils;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecp.common.model.ECPWorkspaceManager;
import org.eclipse.emf.ecp.common.model.NoWorkspaceException;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPProject;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPWorkspace;
import org.eclipse.emf.ecp.common.model.workSpaceModel.WorkSpaceModelPackage;
import org.eclipse.emf.edit.command.ChangeCommand;
import org.fortiss.tooling.kernel.ToolingKernelActivator;
import org.eclipse.emf.emfstore.client.model.ProjectSpace;
import org.eclipse.emf.emfstore.client.model.Workspace;
import org.eclipse.emf.emfstore.client.model.WorkspaceManager;
import org.eclipse.emf.emfstore.common.model.Project;
import org.fortiss.tooling.kernel.services.ICommandStackService;
import org.fortiss.tooling.kernel.util.ProjectRootElementUtils;
/**
* This class implements the {@link ICommandStackService} interface. We have to
......@@ -53,27 +47,14 @@ public class CommandStackService implements ICommandStackService {
private AdapterImpl workspaceListener;
/** Stores the EmfStore workspace. */
private ECPWorkspace workspace;
private Workspace workspace;
/** Stores the project command stacks. */
private Map<ECPProject, BasicCommandStack> commandStackMap = new HashMap<ECPProject, BasicCommandStack>();
private Map<Project, BasicCommandStack> commandStackMap = new HashMap<Project, BasicCommandStack>();
/** Constructor. */
public CommandStackService() {
try {
workspace = ECPWorkspaceManager.getInstance().getWorkSpace();
} catch (NoWorkspaceException e) {
LoggingUtils.log(ToolingKernelActivator.getDefault(),
e.getMessage(), IStatus.ERROR, e);
return;
}
createWorkspaceListener();
workspace.eAdapters().add(workspaceListener);
for (ECPProject project : workspace.getProjects()) {
addCommandStack(project);
}
workspace = WorkspaceManager.getInstance().getCurrentWorkspace();
}
/** {@inheritDoc} */
......@@ -86,36 +67,38 @@ public class CommandStackService implements ICommandStackService {
runner.run();
}
};
commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
.execute(chgCommand);
// commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
// .execute(chgCommand);
}
/** {@inheritDoc} */
@Override
public boolean canUndo(EObject target) {
return commandStackMap.get(
ProjectRootElementUtils.getECPProject(target)).canUndo();
return false;
// return commandStackMap.get(
// ProjectRootElementUtils.getECPProject(target)).canUndo();
}
/** {@inheritDoc} */
@Override
public boolean canRedo(EObject target) {
return commandStackMap.get(
ProjectRootElementUtils.getECPProject(target)).canRedo();
return false;
// return commandStackMap.get(
// ProjectRootElementUtils.getECPProject(target)).canRedo();
}
/** {@inheritDoc} */
@Override
public void undo(EObject target) {
commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
.undo();
// commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
// .undo();
}
/** {@inheritDoc} */
@Override
public void redo(EObject target) {
commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
.redo();
// commandStackMap.get(ProjectRootElementUtils.getECPProject(target))
// .redo();
}
/**
......@@ -123,35 +106,37 @@ public class CommandStackService implements ICommandStackService {
* added projects. It also unregisters command stacks from removed projects.
*/
private void createWorkspaceListener() {
workspaceListener = new AdapterImpl() {
@Override
public void notifyChanged(Notification msg) {
if ((msg.getFeatureID(ECPWorkspace.class)) == WorkSpaceModelPackage.ECP_WORKSPACE__PROJECTS) {
if (msg.getEventType() == Notification.ADD
&& WorkSpaceModelPackage.eINSTANCE.getECPProject()
.isInstance(msg.getNewValue())) {
addCommandStack((ECPProject) msg.getNewValue());
} else if (msg.getEventType() == Notification.REMOVE
&& WorkSpaceModelPackage.eINSTANCE.getECPProject()
.isInstance(msg.getOldValue())) {
removeCommandStack((ECPProject) msg.getOldValue());
}
}
super.notifyChanged(msg);
}
};
// workspaceListener = new AdapterImpl() {
//
// @Override
// public void notifyChanged(Notification msg) {
// if ((msg.getFeatureID(Workspace.class)) ==
// WorkSpaceModelPackage.ECP_WORKSPACE__PROJECTS) {
// if (msg.getEventType() == Notification.ADD
// && WorkSpaceModelPackage.eINSTANCE.getECPProject()
// .isInstance(msg.getNewValue())) {
// addCommandStack((ECPProject) msg.getNewValue());
// } else if (msg.getEventType() == Notification.REMOVE
// && WorkSpaceModelPackage.eINSTANCE.getECPProject()
// .isInstance(msg.getOldValue())) {
// removeCommandStack((ECPProject) msg.getOldValue());
// }
// }
// super.notifyChanged(msg);
// }
// };
}
/** Adds the command stack for the given project. */
private void addCommandStack(ECPProject project) {
BasicCommandStack cmdStack = (BasicCommandStack) project
.getEditingDomain().getCommandStack();
commandStackMap.put(project, cmdStack);
/** Adds the command stack for the given project space. */
private void addCommandStack(ProjectSpace projectSpace) {
// BasicCommandStack cmdStack = (BasicCommandStack)
// projectSpace.getProject()
// .getEditingDomain().getCommandStack();
// commandStackMap.put(project, cmdStack);
}
/** Removes the command stack for the given project. */
private void removeCommandStack(ECPProject project) {
commandStackMap.remove(project);
private void removeCommandStack(ProjectSpace project) {
// commandStackMap.remove(project);
}
}
......@@ -17,12 +17,8 @@ $Id$
+--------------------------------------------------------------------------*/
package org.fortiss.tooling.kernel.internal.navigator;
import java.util.ArrayList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPProject;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPWorkspace;
import org.eclipse.emf.emfstore.client.model.Workspace;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
import org.fortiss.tooling.kernel.interfaces.IHandler;
......@@ -41,14 +37,8 @@ public class NavigatorTreeContentProvider implements ITreeContentProvider {
/** {@inheritDoc} */
@Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof ECPWorkspace) {
ArrayList<EObject> ret = new ArrayList<EObject>();
EList<ECPProject> projects = ((ECPWorkspace) inputElement)
.getProjects();
for (ECPProject ecpProject : projects) {
ret.add(ecpProject.getRootObject());
}
return ret.toArray();
if (inputElement instanceof Workspace) {
return ((Workspace) inputElement).getProjectSpaces().toArray();
}
return null;
}
......
......@@ -20,19 +20,16 @@ package org.fortiss.tooling.kernel.internal.navigator;
import java.util.ArrayList;
import java.util.List;
import org.conqat.ide.commons.ui.logging.LoggingUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecp.common.model.ECPWorkspaceManager;
import org.eclipse.emf.ecp.common.model.NoWorkspaceException;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPProject;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPProjectListener;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPWorkspace;
import org.eclipse.emf.ecp.common.model.workSpaceModel.WorkSpaceModelPackage;
import org.eclipse.emf.emfstore.client.model.ModelPackage;
import org.eclipse.emf.emfstore.client.model.ProjectSpace;
import org.eclipse.emf.emfstore.client.model.Workspace;
import org.eclipse.emf.emfstore.client.model.WorkspaceManager;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.DecoratingLabelProvider;
......@@ -53,7 +50,6 @@ import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.fortiss.tooling.kernel.ToolingKernelActivator;
import org.fortiss.tooling.kernel.interfaces.ICustomMenuContributor;
import org.fortiss.tooling.kernel.internal.NavigatorService;
import org.fortiss.tooling.kernel.services.IActionService;
......@@ -79,14 +75,11 @@ public final class NavigatorViewPart extends ViewPart implements
private TreeViewer viewer;
/** Stores the EmfStore workspace. */
private ECPWorkspace workspace;
private Workspace workspace;
/** Stores the workspace listener. */
private AdapterImpl workspaceListener;
/** Stores the project listener. */
private ECPProjectListener projectListener;
/** Stores the menu manager. */
private MenuManager menuManager;
......@@ -101,78 +94,40 @@ public final class NavigatorViewPart extends ViewPart implements
/** Constructor. */
public NavigatorViewPart() {
try {
workspace = ECPWorkspaceManager.getInstance().getWorkSpace();
} catch (NoWorkspaceException e) {
LoggingUtils.log(ToolingKernelActivator.getDefault(),
e.getMessage(), IStatus.ERROR, e);
return;
}
createProjectListener();
for (ECPProject project : workspace.getProjects()) {
project.addECPProjectListener(projectListener);
}
workspace = WorkspaceManager.getInstance().getCurrentWorkspace();
createWorkspaceListener();
workspace.eAdapters().add(workspaceListener);
((NavigatorService) INavigatorService.INSTANCE)
.setNavigatorViewPart(this);
}
/**
* Creates the workspace listener, which registers the project listener on
* added projects. It also unregisters the project listener from removed
* projects.
*/
/** Creates the workspace listener. */
private void createWorkspaceListener() {
workspaceListener = new AdapterImpl() {
@Override
public void notifyChanged(Notification msg) {
if ((msg.getFeatureID(ECPWorkspace.class)) == WorkSpaceModelPackage.ECP_WORKSPACE__PROJECTS) {
if ((msg.getFeatureID(Workspace.class)) == ModelPackage.WORKSPACE__PROJECT_SPACES) {
if (msg.getEventType() == Notification.ADD
&& WorkSpaceModelPackage.eINSTANCE.getECPProject()
&& ModelPackage.eINSTANCE.getProjectSpace()
.isInstance(msg.getNewValue())) {
ECPProject projectSpace = (ECPProject) msg
ProjectSpace projectSpace = (ProjectSpace) msg
.getNewValue();
projectSpace.addECPProjectListener(projectListener);
// projectSpace.addECPProjectListener(projectListener);
} else if (msg.getEventType() == Notification.REMOVE
&& WorkSpaceModelPackage.eINSTANCE.getECPProject()
&& ModelPackage.eINSTANCE.getProjectSpace()
.isInstance(msg.getOldValue())) {
ECPProject projectSpace = (ECPProject) msg
ProjectSpace projectSpace = (ProjectSpace) msg
.getOldValue();
projectSpace.removeECPProjectListener(projectListener);
// projectSpace.removeECPProjectListener(projectListener);
}
updateUI.schedule();
}
super.notifyChanged(msg);
}
};
}
/**
* Creates the project listener, which refreshes the viewer upon any
* changes.
*/
private void createProjectListener() {
projectListener = new ECPProjectListener() {
@Override
public void projectDeleted() {
// ignore
}
@Override
public void projectChanged() {
updateUI.schedule();
}
@Override
public void modelelementDeleted(EObject eobject) {
// ignore
}
};
workspace.eAdapters().add(workspaceListener);
}
/** {@inheritDoc} */
......@@ -240,23 +195,10 @@ public final class NavigatorViewPart extends ViewPart implements
// TODO (FH): implement link with editor feature here
}
/** Sets the active ECPProject element. */
private void setActiveECPProject(Object obj) {
if (obj instanceof EObject) {
try {
ECPWorkspaceManager.getInstance().getWorkSpace()
.setActiveModelelement((EObject) obj);
} catch (NoWorkspaceException e) {
LoggingUtils.error(ToolingKernelActivator.getDefault(),
e.getMessage(), e);
}
}
}
/** {@inheritDoc} */
@Override
public void dispose() {
workspace.eAdapters().remove(workspaceListener);
((NavigatorService) INavigatorService.INSTANCE)
.setNavigatorViewPart(null);
......@@ -264,11 +206,6 @@ public final class NavigatorViewPart extends ViewPart implements
.getSelectionService().removeSelectionListener(this);
getSite().setSelectionProvider(null);
workspace.eAdapters().remove(workspaceListener);
for (ECPProject project : workspace.getProjects()) {
project.removeECPProjectListener(projectListener);
}
super.dispose();
}
......
......@@ -40,7 +40,7 @@ public final class PropertiesAdapterFactory implements IAdapterFactory {
if (adapterType == ITabbedPropertySheetPageContributor.class
&& adaptableObject instanceof EObject) {
EObject modelElement = (EObject) adaptableObject;
if (ProjectRootElementUtils.getECPProject(modelElement) != null) {
if (ProjectRootElementUtils.getProjectSpace(modelElement) != null) {
return new ITabbedPropertySheetPageContributor() {
@Override
......
......@@ -20,9 +20,9 @@ package org.fortiss.tooling.kernel.util;
import org.conqat.ide.commons.ui.logging.LoggingUtils;
import org.conqat.lib.commons.reflect.ReflectionUtils;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecp.common.model.ECPWorkspaceManager;
import org.eclipse.emf.ecp.common.model.workSpaceModel.ECPProject;
import org.eclipse.emf.emfstore.client.model.ProjectSpace;
import org.eclipse.emf.emfstore.client.model.WorkspaceManager;
import org.eclipse.emf.emfstore.common.model.Project;
import org.fortiss.tooling.kernel.ToolingKernelActivator;
import org.fortiss.tooling.kernel.model.IProjectRootElement;
......@@ -39,10 +39,9 @@ public final class ProjectRootElementUtils {
/**
* Returns the model element's ECP project or <code>null</code> .
*/
public static ECPProject getECPProject(EObject element) {
public static ProjectSpace getProjectSpace(EObject element) {
try {
return ECPWorkspaceManager.getInstance().getWorkSpace()
.getProject(element);
return WorkspaceManager.getProjectSpace(element);
} catch (Exception e) {
LoggingUtils.error(ToolingKernelActivator.getDefault(),
"Unable to find ECP project!", e);
......@@ -56,8 +55,8 @@ public final class ProjectRootElementUtils {
*/
public static <T extends IProjectRootElement> T getRootElement(
EObject element, Class<T> clazz) {
ECPProject project = getECPProject(element);
return ReflectionUtils.pickInstanceOf(clazz, ((ProjectSpace) project
.getRootObject()).getProject().getAllModelElements());
Project project = getProjectSpace(element).getProject();
return ReflectionUtils.pickInstanceOf(clazz,
project.getAllModelElements());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment