...
Download
...
and
...
unzip
...
the
...
template file SamplePlugin.zip
Copy the template folder to IGB source plugins folder
Update files:
1. Change the plugin name from 'SamplePlug' to your customized name such as 'MyPlugin' (your plugin name)
2. Change the package from 'com.affymetrix.igb.sampleplugin'
...
to
...
your
...
package
...
name
...
i.e.
...
'com.myorg.myplugin'.
...
If
...
you
...
IDE
...
does
...
not
...
support
...
create
...
folder
...
directly
...
you
...
can
...
do
...
this
...
from
...
your
...
Finder
...
(MacOS)
...
or
...
Windows
...
Explorer,
...
the
...
directory
...
is
...
IGB_HOME/plugins/MyPlug/src
...
3.
...
Expand
...
src
...
from
...
your
...
IDE
...
until
...
you
...
see
...
the
...
Activator.java
...
and
...
SamplePlugin.java,
...
update
...
the
...
'SamplePlugin.java'
...
to
...
your
...
plugin
...
name
...
and
...
change
...
all the necessary package declaration,
...
class
...
name
...
and
...
constructor(s).
...
4. Update source code to build your own functions
The sample code is to implement an annotation operation, so in the Activator.java it registers service for Alignment, Annotation and ProbeSet
Code Block | ||||
---|---|---|---|---|
| ||||
@Override protected ServiceRegistration<?>\[\] registerService(IGBService igbService) throws Exception \{ return new ServiceRegistration\[\] \{ bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Alignment), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Annotation), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.ProbeSet), null) }; } {code} } @Override protected ServiceRegistration<?>\[\] registerService(IGBService igbService) throws Exception { return new ServiceRegistration\[\] { bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Alignment), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Annotation), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.ProbeSet), null) }; } For more detail refer to the [Extension Points|http://wiki.transvar.org/confluence/display/igbdevelopers/Bundles+and+Plug-Ins#BundlesandPlug-Ins-ExtensionPoints] section 4. Update MAINFEST.BASE {panel} } |
For more detail refer to the Extension Points section
4. Update MAINFEST.BASE
Panel | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Bundle-Name
...
-
...
change
...
to
...
your
...
plugin
...
name
...
i.e.
...
MyPlugin
...
Bundle-SymbolicName
...
-
...
change
...
to
...
your
...
package
...
path
...
i.e.
...
com.myorg.myplugin.MyPlugin
...
Bundle-Version
...
-
...
change
...
to
...
your
...
plugin
...
version
...
Bundle-Activation
...
-
...
change
...
to
...
your
...
Activator
...
path
...
i.e.
...
com.myorg.myplugin.Activator
...
Import-Package
...
-
...
include
...
all
...
the
...
classes
...
your
...
are
...
using
...
in
...
your
...
source
...
code
...
5.
...
Update
...
ant.properties
...
Panel |
---|
name=MyPlugin }/build:$ \{window_service \}/build:$ \{common \}/build:$ \{igb \}/build:$ \{genometry \}/build:$ \{genoviz \}/build:$ \{osgi.impl \}{color} {color:#000000}} |
Change the 'name'
...
and
...
'project'
...
to
...
your
...
plugin
...
name
...
i.e.
...
MyPlugin
...
Update
...
the
...
'classpath'
...
with
...
necessary
...
path,
...
refer
...
to
...
project
...
build.xml
...
for
...
the
...
location
...
annotations.
...
6.
...
Update
...
project's
...
build.properties
...
On
...
the
...
line
...
'not.include.bundles=',
...
delete
...
all
...
the
...
existing
...
values
...
and
...
add
...
your
...
plugin
...
name:
...
Panel |
---|
not.include.bundles=MyPlugin {panel} Clean and Build IGB Delete files in |
Clean and Build IGB
Delete files in IGB_HOME/plugins/ext
...
In
...
command
...
line,
...
go
...
to
...
IGB_HOME,
...
run
...
command
...
Panel |
---|
ant externalBundles {panel} Enter your svn password as necessary Move the generated files inexternalBundles |
Enter your svn password as necessary
Move the generated files in IGB_HOME/plugins/ext
...
(MyPlugin.jar
...
and
...
repository.xml)
...
to
...
the
...
folder
...
(local
...
or
...
remote
...
HTTP
...
server)
...
where
...
you
...
want
...
your
...
plugin
...
site
...
on
...
Make
...
sure
...
you
...
are
...
cut
...
from
...
IGB_HOME/plugins/ext
...
(or
...
delete
...
it
...
after
...
copying)
...
Run
...
IGB
...
->
...
"Plug-ins'
...
tab
...
Click
...
'Repositories...'
...
button
...
to
...
open
...
the
...
Plugin
...
configuration
...
panel
...
Enter
...
the
...
name
...
you
...
want
...
to
...
name,
...
this
...
can
...
be
...
any
...
name
...
you
...
like
...
since
...
it
...
will
...
only
...
show
...
in
...
the
...
plugin
...
site
...
list
...
Enter
...
the
...
URL
...
for
...
your
...
remote
...
server
...
such
...
as
...
http://www.mysite.com/my_plugin_folder
...
OR
Click '...'
...
button
...
to
...
select
...
the
...
folder
...
in
...
local
...
machine
...
Click
...
'Add
...
Repository'
...
button
...
and
...
now
...
you
...
should
...
see
...
your
...
plugin
...
site
...
is
...
added
...
into
...
the
...
site
...
list,
...
also
...
your
...
plugin
...
MyPlugin
...
is
...
showing
...
in
...
the
...
Plug-ins
...
tab
...
in
...
IGB
...
after
...
close
...
the
...
configuration
...
panel