📄 exportandruncheddaronmodel.java
字号:
package com.thalesgroup.cheddar.MARTE2cheddar.actions;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.NamedElement;
import com.ibm.xtools.uml.navigator.ModelServerElement;
import com.thalesgroup.cheddar.MARTE2cheddar.Activator;
import com.thalesgroup.cheddar.MARTE2cheddar.CheddarThread;
import com.thalesgroup.cheddar.MARTE2cheddar.MARTE2CheddarXML;
import com.thalesgroup.cheddar.MARTE2cheddar.MyEclipseSwissTools;
import com.thalesgroup.java.log.Log;
/**
*
* <copyright>
* Thales MARTE to Cheddar (Copyright (c) THALES 2007 All rights reserved) is free software; you can redistribute itand/or modify
* it under the terms of the Eclipse Public License as published in http://www.eclipse.org/legal/epl-v10.html
*
* Thales MARTE to Cheddar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License for more details.
* </copyright>
*
* @author Nicolas Vienne
*
*/
public class ExportAndRunCheddarOnModel implements IWorkbenchWindowActionDelegate {
Element elem = null;
public void dispose() {
}
public void init(IWorkbenchWindow window) {
}
public void run(IAction action) {
if(elem != null) {
Model model = elem.getModel();
IFile infile = MyEclipseSwissTools.getIFile(model.eResource());
try {
MARTE2CheddarXML m2x = MARTE2CheddarXML.getInstance();
IFile outfile = null;
if (elem instanceof NamedElement && elem.getAppliedStereotype("GQAM::GaAnalysisContext") != null) {
NamedElement namedelem = (NamedElement) elem;
m2x.initExport(infile, namedelem.getQualifiedName());
new ProgressMonitorDialog(new Shell()).run(true, false, m2x);
outfile = m2x.result();
} else {
m2x.initExport(infile);
new ProgressMonitorDialog(new Shell()).run(true, false, m2x);
outfile = m2x.result();
}
if(outfile != null){
if(action.getId().equals("MARTE2cheddar.OnModel.ExportAndRunCheddar")) new CheddarThread(outfile).start();
}
} catch (Exception exception) {
Log.errorMessage(Activator.PLUGIN_ID,"Error while running ExportAndRunCheddarOnModel",exception);
}
}
}
public void selectionChanged(IAction action, ISelection selection) {
if (selection instanceof ITreeSelection){
ITreeSelection treeSelection = (ITreeSelection) selection;
Object firstElement = treeSelection.getFirstElement();
if (firstElement instanceof ModelServerElement) {
ModelServerElement mse = (ModelServerElement) firstElement;
if(mse.getElement() instanceof org.eclipse.uml2.uml.Element) {
elem = (Element) mse.getElement();
} else {
Log.debugMessage(Activator.PLUGIN_ID, mse.getElement().getClass().toString());
elem = null;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -