Skip to content

Commit

Permalink
#69 Fix derivation of project containing project-local images
Browse files Browse the repository at this point in the history
Ensure derivation of projects with elements containing references to
images located in the project in their documentation are correctly
updated to match the name of the derived project.

Change-Id: I0000000000000000000000000000000000000000
Signed-off-by: Arnaud Dieumegard <arnaud.dieumegard@obeo.fr>
  • Loading branch information
arnauddieumegard authored and minhtutonthat committed Jun 9, 2022
1 parent f0fb6a1 commit 57d4dcd
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ Require-Bundle: org.polarsys.capella.common.ui.toolkit,
org.eclipse.jface.databinding,
com.ibm.icu,
com.google.guava;bundle-version="11.0.0",
org.polarsys.capella.filtering.model.edit
org.polarsys.capella.filtering.model.edit,
org.eclipse.ltk.core.refactoring
Bundle-Activator: org.polarsys.capella.filtering.tools.FilteringToolsPlugin
Export-Package: org.polarsys.capella.filtering.tools,
org.polarsys.capella.filtering.tools.actions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ public class Messages extends NLS {
public static String FilteringDirtyReferencedModels_dialog_message;
public static String FilteringDirtyReferencedModels_dialog_continue_without_saving;
public static String FilteringDirtyReferencedModels_dialog_continue_with_saving;

public static String FilteringErrorImagePathChange;

static {
// initialize resource bundle
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,26 @@
import java.util.Set;
import java.util.stream.Collectors;

import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.ltk.core.refactoring.Refactoring;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
import org.eclipse.ltk.core.refactoring.resource.RenameResourceDescriptor;
import org.eclipse.osgi.util.NLS;
import org.eclipse.sirius.business.api.session.ReloadingPolicy;
import org.eclipse.sirius.business.api.session.Session;
import org.eclipse.sirius.common.tools.api.resource.ResourceSetSync;
Expand All @@ -56,10 +63,12 @@
import org.polarsys.capella.core.sirius.ui.actions.DesignerControlAction;
import org.polarsys.capella.core.sirius.ui.actions.DesignerControlAction.CapellaSiriusUncontrolCommand;
import org.polarsys.capella.core.sirius.ui.helper.SessionHelper;
import org.polarsys.capella.core.sirius.ui.refactoring.WorkspaceImagePathChange;
import org.polarsys.capella.filtering.AbstractFilteringResult;
import org.polarsys.capella.filtering.AssociatedFilteringCriterionSet;
import org.polarsys.capella.filtering.FilteringCriterion;
import org.polarsys.capella.filtering.FilteringModel;
import org.polarsys.capella.filtering.tools.FilteringToolsPlugin;
import org.polarsys.capella.filtering.tools.extract.FilteringExtractor;
import org.polarsys.capella.filtering.tools.utils.FilteringUtils;

Expand Down Expand Up @@ -228,10 +237,18 @@ public void run() {
* Change Project name
*/
executionManager.execute(new AbstractNonDirtyingCommand() {
@Override
public void run() {
((Project) current).setName(clonedProject.getName());
}
@Override
public void run() {
((Project) current).setName(clonedProject.getName());
// Rename workspace image references
RenameArguments rArguments = new RenameArguments(clonedProject.getName(), true);
WorkspaceImagePathChange wipc = new WorkspaceImagePathChange(clonedProject, currentProject.getName(), rArguments);
try {
wipc.perform(subMonitor);
} catch (CoreException e) {
FilteringToolsPlugin.getDefault().getLog().error(NLS.bind(org.polarsys.capella.filtering.tools.Messages.FilteringErrorImagePathChange, clonedProject.getName()), e);
}
}
});

List<FilteringModel> rootSemanticObjectFilteringModels = FilteringUtils.getFilteringModels(configuration,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,6 @@ FilteringMetricsDialog_3=optional childs / total childs
FilteringDirtyReferencedModels_dialog_title=Unsaved impacted models have been detected
FilteringDirtyReferencedModels_dialog_message=The following model(s): [{0}] must be saved.\nOtherwhise, unsaved modifications will not be taken into account in the derivation process.
FilteringDirtyReferencedModels_dialog_continue_without_saving=Continue without Saving
FilteringDirtyReferencedModels_dialog_continue_with_saving=Save and Continue
FilteringDirtyReferencedModels_dialog_continue_with_saving=Save and Continue

FilteringErrorImagePathChange=Error during WorkspaceImagePath update on derived project: {0}

0 comments on commit 57d4dcd

Please sign in to comment.