CHESSIoT_Dev_old-master/org.polarsys.chess.service/src/org/polarsys/chess/service/internal/visibility/HidePortCommand.java
/*
-----------------------------------------------------------------------
--          			CHESS editor plugin							 --
--                                                                   --
--                    Copyright (C) 2011-2012                        --
--                 University of Padova, ITALY                       --
--                                                                   --
-- Author: Alessandro Zovi         azovi@math.unipd.it 		         --
--                                                                   --
-- 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-v20.html                         --
-----------------------------------------------------------------------
*/

package org.polarsys.chess.service.internal.visibility;

import java.util.List;

import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;

//TODO The functionality provided by this class does not work.
//Either remove the class or investigate an alternative solution.
public class HidePortCommand {

	private PapyrusMultiDiagramEditor editor;
	private List<View> elements;
	private EditingDomain domain;

	public HidePortCommand(List<View> elements, PapyrusMultiDiagramEditor activeEditor) {
		this.domain = activeEditor.getEditingDomain();
		this.elements = elements;
		this.editor = activeEditor;
	}

	public void execute() {
		editor.getEditingDomain().getCommandStack()
				.execute(cmd);
	}

	RecordingCommand cmd = new RecordingCommand((TransactionalEditingDomain) domain) {
		@Override
		protected void doExecute() {
			for (View e : elements) {
				((View) e).setVisible(false);
			}
		}
	};
}