Search in sources :

Example 1 with AppsChangedListener

use of org.cytoscape.app.internal.event.AppsChangedListener in project cytoscape-impl by cytoscape.

the class CurrentlyInstalledAppsPanel method setupAppListener.

/**
 * Registers a listener to the {@link AppManager} to listen for app change events in order to rebuild the table
 */
private void setupAppListener() {
    appListener = new AppsChangedListener() {

        @Override
        public void appsChanged(AppsChangedEvent event) {
            SwingUtilities.invokeLater(new Runnable() {

                @Override
                public void run() {
                    Set<App> selectedApps = getSelectedApps();
                    // Clear table
                    DefaultTableModel tableModel = (DefaultTableModel) appsAvailableTable.getModel();
                    for (int rowIndex = tableModel.getRowCount() - 1; rowIndex >= 0; rowIndex--) {
                        tableModel.removeRow(rowIndex);
                    }
                    // Re-populate table
                    populateTable();
                    // Update labels
                    updateLabels();
                    // Re-select previously selected apps
                    for (int rowIndex = 0; rowIndex < tableModel.getRowCount(); rowIndex++) {
                        if (selectedApps.contains(tableModel.getValueAt(rowIndex, 0))) {
                            appsAvailableTable.addRowSelectionInterval(rowIndex, rowIndex);
                        }
                    }
                }
            });
        }
    };
    appManager.addAppListener(appListener);
}
Also used : BundleApp(org.cytoscape.app.internal.manager.BundleApp) App(org.cytoscape.app.internal.manager.App) SimpleApp(org.cytoscape.app.internal.manager.SimpleApp) DefaultTableModel(javax.swing.table.DefaultTableModel) AppsChangedListener(org.cytoscape.app.internal.event.AppsChangedListener) AppsChangedEvent(org.cytoscape.app.internal.event.AppsChangedEvent)

Aggregations

DefaultTableModel (javax.swing.table.DefaultTableModel)1 AppsChangedEvent (org.cytoscape.app.internal.event.AppsChangedEvent)1 AppsChangedListener (org.cytoscape.app.internal.event.AppsChangedListener)1 App (org.cytoscape.app.internal.manager.App)1 BundleApp (org.cytoscape.app.internal.manager.BundleApp)1 SimpleApp (org.cytoscape.app.internal.manager.SimpleApp)1