Difference between revisions of "Writing plugins for Micro-Manager"
(Undo revision 9148 - I use this! (and try to keep it up to date), if it doesn't belong here let's move it but I like Eclipse) |
(NetBeans version 7.3.1 is the last release compatible with JDK 6.) |
||
Line 25: | Line 25: | ||
The dynamic loading feature (described above) is useful if you are developing your plugin using an IDE such as Eclipse or Netbeans. (The Micro-Manager distribution includes <code>swing-layout-*.*.jar</code> so that you can use the free Netbeans GUI Builder for your plugin.) Here are the steps for Netbeans: | The dynamic loading feature (described above) is useful if you are developing your plugin using an IDE such as Eclipse or Netbeans. (The Micro-Manager distribution includes <code>swing-layout-*.*.jar</code> so that you can use the free Netbeans GUI Builder for your plugin.) Here are the steps for Netbeans: | ||
− | # Install [http://netbeans.org Netbeans]. Note, Netbeans currently comes with the Java 1.7.0 run time environment. After install, you will need to manually install and add the JRE that Micro-Manager uses: 1.6.0, 64-bit if you need it. | + | # Install [http://netbeans.org Netbeans]. Note, Netbeans currently comes with the Java 1.7.0 run time environment. After install, you will need to manually install and add the JRE that Micro-Manager uses: 1.6.0, 64-bit if you need it. Additionally, if you are developing with JDK 6, you will need [https://netbeans.org/downloads/7.3.1/index.html NetBeans 7.3.1] as that was the last release compatible with JDK 6 and later versions require JDK 7. |
# Select New > New Project... > Java > Java Class Library. | # Select New > New Project... > Java > Java Class Library. | ||
# Name your plugin project and press Finish. | # Name your plugin project and press Finish. | ||
Line 52: | Line 52: | ||
</div> | </div> | ||
:Make sure you change the "Layout Generation Style" property from "Automatic" to "Swing Layout Extensions Library" as explained on the [http://wiki.netbeans.org/FaqFormLayoutGenerationStyle Netbeans website]. | :Make sure you change the "Layout Generation Style" property from "Automatic" to "Swing Layout Extensions Library" as explained on the [http://wiki.netbeans.org/FaqFormLayoutGenerationStyle Netbeans website]. | ||
− | |||
=== Configure Eclipse to edit a plugin === | === Configure Eclipse to edit a plugin === |
Revision as of 12:08, 25 January 2015
Micro-Manager has a Java-based plugin system similar to ImageJ's. To write a Micro-Manager plugin, simply implement theMMPlugin
interface. menuName
lets you control the name of the plugin that appears in the Micro-Manager Plugins menu.Micro-Manager's classpath is set up so that Micro-Manager plugins can import classes from:
The MMPlugins API provides you access to the GUI and core instances (objects) already created by Micro-Manager startup. Micro-Manager will call
public void setApp(ScriptInterface app);
you can get the GUI object, core and acquisition engine objects thus:
MMStudioMainFrame gui_ = (MMStudioMainFrame) app; CMMCore core_ = gui_.getMMCore(); AcquisitionEngine acq_ = gui_.getAcquisitionEngine();
Once you have compiled your code into a .class
file or a .jar
file, drop that file into Micro-Manager's mmplugins
directory, and it will be loaded at startup.
The source code for a number of Micro-Manager plugins is publicly available here. Seamus Holden has also contributed a Hello World Example plugin.
Using Netbeans
The dynamic loading feature (described above) is useful if you are developing your plugin using an IDE such as Eclipse or Netbeans. (The Micro-Manager distribution includes swing-layout-*.*.jar
so that you can use the free Netbeans GUI Builder for your plugin.) Here are the steps for Netbeans:
- Install Netbeans. Note, Netbeans currently comes with the Java 1.7.0 run time environment. After install, you will need to manually install and add the JRE that Micro-Manager uses: 1.6.0, 64-bit if you need it. Additionally, if you are developing with JDK 6, you will need NetBeans 7.3.1 as that was the last release compatible with JDK 6 and later versions require JDK 7.
- Select New > New Project... > Java > Java Class Library.
- Name your plugin project and press Finish.
- Under the Projects tab, right-click your plugin project and choose Properties.
- Then choose Libraries > Compile > Add JAR/Folder.
- Browse to
C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager
and choose all jars in that directory. - Click Add JAR/Folder again and add
C:\Program Files\Micro-Manager-1.4\ij.jar
- Click Categories > Run and set Main Class to
ij.ImageJ
, working directory toC:\Program Files\Micro-Manager-1.4\
. Click OK.
- Browse to
- Now choose Debug > Debug Project from the Menu and ImageJ/Micro-Manager should launch. Close it for now.
- Right-click your Source Packages in your project, under the Projects tab. Select New > Java Class... and give your plugin a class name and package name.
- Edit the class declaration so that it contains the phrase
implements org.micromanager.api.MMPlugin
. Left-click on the light-bulb with a red pimple to the left of this line, and select "Implement all abstract methods." - Compile your project, and manually copy the project jar file to Micro-Manager's
mmplugins
directory. Alternatively, you can add the following to your projectbuild.xml
file (look in the Project "Files" tab in Netbeans):
<property name="pluginsDir" location="C:\Program Files\Micro-Manager-1.4\mmplugins" /> <target name="-post-jar"> System.out.println(info); <echo message="--Copied MM plugin JAR to basedir: ${basedir}" /> <copy file="${basedir}/${dist.jar}" toDir="${pluginsDir}" /> </target>
- When "Clean and Build" is run, this will automatically copy the current version of your plugin to the
mmplugins
folder.
- Now choose Debug > Debug Project and your nascent plugin should appear in the Plugins menu.
- You can also dynamically load your plugin by including a line in the
MMStartup.bsh
file. (This file should reside in the root directory of your Micro-Manager installation; if there isn't one yet, you can create it with any text editor program.) For example:
gui.installPlugin("org.micromanager.surveyor.SurveyorPlugin");
- Make sure you change the "Layout Generation Style" property from "Automatic" to "Swing Layout Extensions Library" as explained on the Netbeans website.
Configure Eclipse to edit a plugin
- Get Micro-manager source code if you don't already have it, at least the trunk (see this page)
- Install Eclipse (these instructions for Kepler)
- Add Micro-manager's JRE to Eclipse
- Window -> Preferences; under Java, select Installed JREs and click Add...
- Use Standard VM
- Set the JRE Home to
C:\Program Files\Micro-Manager-1.4\jre
(or similar). - Eclipse should fill in the rest.
- Click Finish
- Check the checkbox next to the newly-added JRE.
- Window -> Preferences; under Java, select Installed JREs and click Add...
- Create a new project for Micro-Manager Studio:
- File -> New -> Java Project...
- Select an appropriate name (e.g. the name of the plugin)
- Uncheck "Use Default Location"
- Point Location to plugin code location, in trunk the path is
plugins\<plugin name>
(note: do not useplugins\<plugin name>\src\org\micromanager\<plugin name>
) - Eclipse should auto-configure all sorts of useful things.
- Click Next
- On the Libraries tab, click Add External JARs and add all the JARs in Browse to
C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager
(or similar): - Also Add External JAR ij.jar at
C:\Program Files\Micro-Manager-1.4\
(or similar) - Add any other relevant JARs, or add later from Project Properties
- On the Libraries tab, click Add External JARs and add all the JARs in Browse to
- Click Finish.
- File -> New -> Java Project...
- Set up debug configuration at Project -> Properties; then Run/Debug Settings
- Add New configuration, Java Application; click "OK"
- Make sure the project is set to be the current project
- Specify the main class as
ij.ImageJ
- At the bottom of the Arguments tab, change the working directory to "other" and browse to
C:\Program Files\Micro-Manager-1.4\
- Click OK
- Make sure everything works by launching debug view from Run -> Debug
- Add New configuration, Java Application; click "OK"
- To build a JAR file
- File -> Export (or right click on the project in the Project Explorer, select Export)
- Select Java -> JAR file, then click "Next"
- Point JAR export location to
C:\Program Files\Micro-Manager-1.4\mmplugins\<plugin name>
- Click "Finish"