Hi all,
I am making some progress,
I have an issue in specifying the pluginid in my circumstance, code is:
Plugin -project c:/IctEngineer/Projects/ictmanager.vpp -pluginid ImportSourceAction
my plugin.xml:
<plugin
id="IctEngineer"
name="ICTTools"
description="ICT Tools."
provider="Imas-ICT Turnhout"
class="com.blabla.ictengineer.visualparadigm.plugin.ICTSetupControl">
<actionSets>
<actionSet id="ICTActionSet">
<toolbar id="mainToolbar" orientation="north" index="last"/>
<menu id="imasMenu" label="Imas-ICT Tools" mnemonic="I" menuPath="Tools/Report">
</menu>
<action id="CreateRequestStructureController" actionType="generalAction"
label="Create Request Model Structure..."
style="normal"
menuPath="Tools/imasMenu/#">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.CreateRequestStructureController"/>
</action>
<action id="CreateProjectStructureController" actionType="generalAction"
label="Create Project Model Structure..."
style="normal"
menuPath="Tools/imasMenu/#">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.CreateProjectStructureController"/>
</action>
<action id="ImportSourceActionController" actionType="generalAction"
label="Import Source..."
style="normal"
menuPath="Tools/imasMenu/#">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ImportSourceController"/>
</action>
<action id="ShowChangesController" actionType="generalAction"
label="Show recent changes..."
style="normal"
menuPath="Tools/imasMenu/#">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ShowChangesController"/>
</action>
<action id="ImportSourceAction" actionType="generalAction">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ImportSourceAction"/>
</action>
</actionSet>
<contextSensitiveActionSet id="ContextControllerID">
<contextTypes all="true"/>
<action id="ContextController"
menuPath="OpenSpecification"
label="Create Diagram..."
style="normal">
<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ContextController"/>
</action>
</contextSensitiveActionSet>
</actionSets>
</plugin>
All the above do function, except for the bat plugin. I get a plugin not found.
My plugin folder looks like:
plugins
-IctEngineer
–classses
—com
----blabla
-----ictengineer
------visualparadigm
-------actions
-------classes
-------models
-------plugin
--------actions <=plugin is in this folder
--------dialogs
Hi all,
My understanding of the system increases daily. Clearly I needed a totally separate plugin definition. I resolved it as follows and added some parameters specified control.
The plugin source:
package icte.batch;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.blabla.system.ictengineer.FileHelpers;
import com.blabla.system.ictengineer.ICTENGINEER;
import com.blabla.system.ictengineer.visualparadigm.actions.ImportSourcesEngine;
import com.vp.plugin.ApplicationManager;
import com.vp.plugin.VPPlugin;
import com.vp.plugin.VPPluginCommandLineSupport;
import com.vp.plugin.VPPluginInfo;
import com.vp.plugin.model.IProject;
public class select implements VPPlugin, VPPluginCommandLineSupport {
/**
*
*/
@Override
public void loaded(VPPluginInfo arg0) {
System.console().writer().println("loaded() - Howdy");
}
/**
*
*/
@Override
public void unloaded() {
System.console().writer().println("unloaded() - Bye");
}
/**
*
*/
public void invoke(String[] arg0) {
System.console().writer().println("invoke() - Ready");
if (arg0 == null) {
System.console().writer()
.println("invoke() - No parameters found!");
return;
}
for (String str : arg0)
System.console().writer().println("parm - " + str);
String ictProcess = null;
String ictProject = null;
if (arg0 != null)
ictProcess = arg0[0];
try {
ictProject = arg0[1];
} catch (Exception ex) {
System.console().writer()
.println("invoke() - No project specified. Using default.");
IProject project = ApplicationManager.instance()
.getProjectManager().getProject();
ictProject = project.getName().replace(".vpp", "");
}
if (!processRunner(ictProcess, ictProject))
System.console().writer()
.println("invoke() - Invalid process specified");
}
/**
*
* @param ictProcess
* @param ictProject
* @return
*/
private boolean processRunner(String ictProcess, String ictProject) {
if (ictProcess.toUpperCase().equals("IMPORT")) {
System.console().writer()
.println("validateParameter() - OK -" + ictProcess);
batchImport(ictProject);
return true;
} else if (ictProcess.toUpperCase().equals("CRCUPDATE")){
String path = ICTENGINEER.ICTENGINEER_ROOT+"\\"+ ICTENGINEER.ICTENGINEER_WORKSPACE+"\\"+ ICTENGINEER.ICTENGINEER_MODELPATH+"\\";
System.console().writer()
.println("validateParameter() - OK -" + ictProcess);
FileHelpers.updateCRCs(path,path);
return true;
} else {
System.console()
.writer()
.println(
"validateParameter() - Invalid parameter -"
+ ictProcess);
}
return false;
}
/**
*
* @param ictProject
*/
private void batchImport(String ictProject) {
String fileName = ICTENGINEER.ICTENGINEER_ROOT + "/"
+ ICTENGINEER.ICTENGINEER_WORKSPACE + "/" + ictProject + ".txt";
List<File> filestodo = new ArrayList<File>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(fileName));
} catch (FileNotFoundException e2) {
System.console().writer()
.println("batchImport() - File not found: " + fileName);
}
String line = null;
try {
while ((line = reader.readLine()) != null) {
filestodo.add(new File(line));
System.console().writer()
.println("batchImport() - Input: " + line);
}
} catch (IOException e1) {
e1.printStackTrace();
System.console().writer()
.println("batchImport() - Cannot read file.");
}
File[] files = filestodo.toArray(new File[filestodo.size()]);
ImportSourcesEngine importer = new ImportSourcesEngine(true);
try {
importer.importSourceElement(files);
} catch (IOException e) {
System.console().writer().println("batchImport() - ***FAILED***");
}
}
}
plugin.xml:
<plugin
id="icte.batch"
name="ICTTools"
description="ICT Tools."
provider="Imas-ICT Turnhout"
class="icte.batch.select">
<runtime>
<library path="../IctEngineer/classes" relativePath="true"/>
</runtime>
</plugin>
I include the libary path of the related system to have access to various methods.
Execution batch file:
@echo on
call Plugin -project c:/IctEngineer/Projects/article.vpp -pluginid icte.batch -pluginargs "import"
Note the pluginargs
I created a VP project called $$Runner$$ so that the plugin can run without a ‘real’ project, as below:
@echo on
call Plugin -project c:/IctEngineer/Projects/$$Runner$$.vpp -pluginid icte.batch -pluginargs "crcupdate"
I hopes this helps someone …