Create original Mode for Processing 3.0.2
Original Mode extends Java Mode (Default Mode)
similar when create Tool
refer: ProcessingのModeを作る - gutugutu3030
Environment
- Windows 10 (64 bit)
- Eclipse (Mars)
- Processing 3.0.2
- JDK 1.8 (Java SE 8)
- Mode Template for Processing 2.0 (for 2.0...)
Step
Download the zip
TemplateMode-master.zip (=archive file) from github
Create new project
Eclipse: new Java Project ("testMode": my case) -> import archive file (zip)
Copy jar files
Copy core.jar & pde.jar & many jar files(JavaMode.jar, jdi.jar, ...) -> Paste in : {your project name}>src>TemplateMode-master>lib - core.jar (Processing-3.0.2>core>library) - pde.jar (Processing-3.0.2>lib) - *.jar (Processing-3.0.2>modes>java>mode) = (18 jar files)
Add to Build Path
- select all jar files(TemplateMode-master>lib)
- right click
- Build Path>Add to Build Path (seemed to move)
Edit build.xml (src>TemplateMode-master)
path is my case
Edit at least
- JDK version
- core.jar path
- pde.jar path
- processing.exe path (Processing-3.0.2)
- (if you want) Mode name, Version ...
<!-- java version --> <property name="java.target.version" value="1.8" /> <!-- location of processing jars (core.jar, pde.jar, ..) --> <property name="processing.classes.core" location="${user.home}\\Downloads\\PROGRAM\\Processing\\processing-3.0.2\\core\\library" /> <property name="processing.classes.pde" location="${user.home}\\Downloads\\PROGRAM\\Processing\\processing-3.0.2\\lib" /> <!-- folder to install modes in (probably a folder called "modes" inside your sketchbook folder) --> <property name="processing.modes" location="${user.home}\\Documents\\Processing3\\modes"/> <!-- path to your processing executable. --> <property name="processing.executable" location="${user.home}\\Downloads\\PROGRAM\\Processing\\processing-3.0.2\\processing.exe"/>
Change import statements
Edit TemplateMode.java (src>TemplateMode-master>src>com>mydomain>mymode)
//package com.mydomain.mymode; import java.io.File; import processing.app.Base; //import processing.app.Editor; // 2.x import processing.app.ui.Editor; // 3.0.2 //import processing.app.EditorState; // 2.x import processing.app.ui.EditorState; // 3.0.2 import processing.app.Mode; import processing.mode.java.JavaMode; public class TemplateMode extends JavaMode { public TemplateMode(Base base, File folder) { super(base, folder); } /** * Return the pretty/printable/menu name for this mode. This is separate * from the single word name of the folder that contains this mode. It could * even have spaces, though that might result in sheer madness or total * mayhem. */ @Override public String getTitle() { return "Mode Template"; } // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . // Create a new editor associated with this mode. // @Override // public Editor createEditor(Base base, String path, EditorState state) { // return null; // } // Returns the default extension for this editor setup. // @Override // public String getDefaultExtension() { // return null; // } // Returns a String[] array of proper extensions. // @Override // public String[] getExtensions() { // return null; // } // Get array of file/directory names that needn't be copied during "Save As". // @Override // public String[] getIgnorable() { // return null; // } /** * Retrieve the ClassLoader for JavaMode. This is used by Compiler to load * ECJ classes. Thanks to Ben Fry. * @return the class loader from java mode */ // @Override // public ClassLoader getClassLoader() { // for (Mode m : base.getModeList()) { // if (m.getClass() == JavaMode.class) { // JavaMode jMode = (JavaMode) m; // return jMode.getClassLoader(); // } // } // return null; // badness // } }
Ant build (Eclipse)
- show Ant tab
- Eclipse: Window>show View>other -> click Ant -> Ant tab appear (int the lower window)
- build.xml (src>resources) -> drag & drop on Ant tab -> close Processing (while building)
- push Run button in Ant tab -> watch console (build finished in about 2 sec)
- if (BUILD SUCCESSFUL) -> Template Mode is in your Processing (PDE), else check build.xml and .jar file