|
ICY Version 1.0.1.0
|
public class MainListenerUse extends Plugin implements PluginImageAnalysis { @Override public void compute() { // build a simple titled frame final TitledFrame frame = new TitledFrame("Main Event logger", true, true); // we need a text area to put out event informations final JTextArea area = new JTextArea(); area.setWrapStyleWord(true); area.setEditable(false); // better to have a scroll pane as many events can occurs final JScrollPane scrollPane = new JScrollPane(area); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); // build the global event listener final MainListener mainListener = new MainAdaptater() { @Override public void painterAdded(MainEvent event) { area.append("painterAdded event : " + event + "\n"); } @Override public void painterRemoved(MainEvent event) { area.append("painterRemoved event : " + event + "\n"); } @Override public void pluginClosed(MainEvent event) { area.append("pluginClosed event : " + event + "\n"); } @Override public void pluginOpened(MainEvent event) { area.append("pluginOpened event : " + event + "\n"); } @Override public void roiAdded(MainEvent event) { area.append("roiAdded event : " + event + "\n"); }; @Override public void roiRemoved(MainEvent event) { area.append("roiRemoved event : " + event + "\n"); } @Override public void sequenceFocused(MainEvent event) { area.append("sequenceFocused event : " + event + "\n"); } @Override public void sequenceClosed(MainEvent event) { area.append("sequenceClosed event : " + event + "\n"); } @Override public void sequenceOpened(MainEvent event) { area.append("sequenceOpened event : " + event + "\n"); } @Override public void viewerClosed(MainEvent event) { area.append("viewerClosed event : " + event + "\n"); } @Override public void viewerFocused(MainEvent event) { area.append("viewerFocused event : " + event + "\n"); } @Override public void viewerOpened(MainEvent event) { area.append("viewerOpened event : " + event + "\n"); } }; // add the global event listener Icy.getMainInterface().addListener(mainListener); frame.addFrameListener(new IcyFrameAdapter() { @Override public void icyFrameClosed(IcyFrameEvent e) { // remove the main listener so there is no more reference on plugin instance Icy.getMainInterface().removeListener(mainListener); } }); // add the scroll pane to the frame frame.getMainPanel().add(scrollPane); // set default size frame.setSize(700, 300); // add the frame to the interface addIcyFrame(frame); // center frame frame.center(); // make it visible frame.setVisible(true); } }
This class demonstrate how use the MainListener to track global event on Viewer, Sequence, ROI and Painter objects
1.7.3