ICY Version 1.0.1.0

Tutorial: How to listen to all major events of ICY. Painter added/removed, plugin started/closed, roi, focus, viewer (...)

 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

Author:
Stephane
 All Classes Functions Variables