package org.eclipse.uml2.diagram.clazz.details;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions;
import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil;
import org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand;
import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand;
import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
import org.eclipse.gmf.runtime.notation.Filtering;
import org.eclipse.gmf.runtime.notation.FilteringStyle;
import org.eclipse.gmf.runtime.notation.NotationPackage;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.uml2.diagram.clazz.part.CustomMessages;
import org.eclipse.uml2.diagram.common.details.DetailLevelParserOptions;
class AnalysisLevel extends UMLDetailLevel {
@Override
public void init(View view) {
List<String> filteringKeys = new ArrayList<String>(1);
filteringKeys.add(UMLDetailLevelService.FILTER_BY_VISIBILITY);
ViewUtil.setPropertyValue(view, NotationPackage.eINSTANCE.getFilteringStyle_Filtering(), NotationPackage.eINSTANCE.getFilteringStyle(), Filtering.AUTOMATIC_LITERAL);
ViewUtil.setPropertyValue(view, NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys(), NotationPackage.eINSTANCE.getFilteringStyle(), filteringKeys);
}
@Override
public List<EditElementCommand> getApplyCommands(TransactionalEditingDomain editingDomain, View view) {
FilteringStyle style = (FilteringStyle) view.getStyle(NotationPackage.eINSTANCE.getFilteringStyle());
List<EditElementCommand> result = new ArrayList<EditElementCommand>(2);
SetRequest setFilteringRequest = new SetRequest(editingDomain, style, NotationPackage.eINSTANCE.getFilteringStyle_Filtering(), Filtering.AUTOMATIC_LITERAL);
result.add(new SetValueCommand(setFilteringRequest));
List<String> filteringKeys = new ArrayList<String>(1);
filteringKeys.add(UMLDetailLevelService.FILTER_BY_VISIBILITY);
SetRequest setKeysRequest = new SetRequest(editingDomain, style, NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys(), filteringKeys);
result.add(new SetValueCommand(setKeysRequest));
return result;
}
@Override
public List<EditElementCommand> getUnapplyCommands(TransactionalEditingDomain editingDomain, View view) {
FilteringStyle style = (FilteringStyle) view.getStyle(NotationPackage.eINSTANCE.getFilteringStyle());
List<EditElementCommand> result = new ArrayList<EditElementCommand>(1);
SetRequest setFilteringRequest = new SetRequest(editingDomain, style, NotationPackage.eINSTANCE.getFilteringStyle_Filtering(), Filtering.NONE_LITERAL);
result.add(new SetValueCommand(setFilteringRequest));
return result;
}
@Override
public ParserOptions getParserOptions() {
return DetailLevelParserOptions.OPTION_ANALYSIS;
}
@Override
public String getLabel() {
return CustomMessages.AnalysisLevel_analysis_label;
}
@Override
public String getId() {
return ID;
}
public static final String ID = "org.eclipse.uml2.diagram.clazz.detail_level_analysis"; //$NON-NLS-1$
}