hotspot/src/share/tools/IdealGraphVisualizer/Coordinator/src/com/sun/hotspot/igv/coordinator/OutlineTopComponent.java
author never
Tue, 24 Jun 2008 16:00:14 -0700
changeset 768 d0bebc7eefc2
child 5547 f4b087cbb361
permissions -rw-r--r--
6718676: putback for 6604014 is incomplete Reviewed-by: kvn, jrose
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
768
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     1
/*
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     2
 * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     4
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     7
 * published by the Free Software Foundation.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     8
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    13
 * accompanied this code).
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    14
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    18
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    19
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    20
 * CA 95054 USA or visit www.sun.com if you need additional information or
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    21
 * have any questions.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    22
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    23
 */
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    24
package com.sun.hotspot.igv.coordinator;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    25
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    26
import com.sun.hotspot.igv.coordinator.actions.ImportAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    27
import com.sun.hotspot.igv.coordinator.actions.RemoveAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    28
import com.sun.hotspot.igv.coordinator.actions.RemoveAllAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    29
import com.sun.hotspot.igv.coordinator.actions.SaveAllAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    30
import com.sun.hotspot.igv.coordinator.actions.SaveAsAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    31
import com.sun.hotspot.igv.coordinator.actions.StructuredViewAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    32
import com.sun.hotspot.igv.data.GraphDocument;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    33
import com.sun.hotspot.igv.data.ChangedListener;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    34
import com.sun.hotspot.igv.data.Group;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    35
import com.sun.hotspot.igv.data.services.GroupCallback;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    36
import com.sun.hotspot.igv.data.services.GroupOrganizer;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    37
import com.sun.hotspot.igv.data.services.GroupReceiver;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    38
import java.awt.BorderLayout;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    39
import java.awt.Component;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    40
import java.io.IOException;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    41
import java.io.ObjectInput;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    42
import java.io.ObjectOutput;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    43
import java.io.Serializable;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    44
import java.util.ArrayList;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    45
import java.util.Collection;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    46
import javax.swing.BoxLayout;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    47
import javax.swing.JPanel;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    48
import javax.swing.UIManager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    49
import javax.swing.border.Border;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    50
import org.openide.ErrorManager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    51
import org.openide.awt.Toolbar;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    52
import org.openide.awt.ToolbarPool;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    53
import org.openide.explorer.ExplorerManager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    54
import org.openide.explorer.ExplorerUtils;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    55
import org.openide.explorer.view.BeanTreeView;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    56
import org.openide.util.Lookup;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    57
import org.openide.util.LookupEvent;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    58
import org.openide.util.LookupListener;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    59
import org.openide.util.NbBundle;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    60
import org.openide.util.actions.NodeAction;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    61
import org.openide.windows.TopComponent;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    62
import org.openide.windows.WindowManager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    63
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    64
/**
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    65
 *
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    66
 * @author Thomas Wuerthinger
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    67
 */
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    68
public final class OutlineTopComponent extends TopComponent implements ExplorerManager.Provider, LookupListener {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    69
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    70
    public static OutlineTopComponent instance;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    71
    public static final String PREFERRED_ID = "OutlineTopComponent";
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    72
    private ExplorerManager manager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    73
    private GraphDocument document;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    74
    private FolderNode root;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    75
    private GroupOrganizer organizer;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    76
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    77
    private OutlineTopComponent() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    78
        initComponents();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    79
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    80
        setName(NbBundle.getMessage(OutlineTopComponent.class, "CTL_OutlineTopComponent"));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    81
        setToolTipText(NbBundle.getMessage(OutlineTopComponent.class, "HINT_OutlineTopComponent"));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    82
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    83
        document = new GraphDocument();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    84
        initListView();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    85
        initToolbar();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    86
        initReceivers();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    87
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    88
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    89
    private void initListView() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    90
        manager = new ExplorerManager();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    91
        organizer = new StandardGroupOrganizer();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    92
        root = new FolderNode("", organizer, new ArrayList<String>(), document.getGroups());
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    93
        manager.setRootContext(root);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    94
        ((BeanTreeView) this.jScrollPane1).setRootVisible(false);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    95
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    96
        document.getChangedEvent().addListener(new ChangedListener<GraphDocument>() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    97
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    98
            public void changed(GraphDocument document) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
    99
                updateStructure();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   100
            }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   101
        });
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   102
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   103
        associateLookup(ExplorerUtils.createLookup(manager, getActionMap()));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   104
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   105
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   106
    private void initToolbar() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   107
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   108
        Toolbar toolbar = new Toolbar();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   109
        Border b = (Border) UIManager.get("Nb.Editor.Toolbar.border"); //NOI18N
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   110
        toolbar.setBorder(b);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   111
        this.add(toolbar, BorderLayout.NORTH);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   112
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   113
        toolbar.add(ImportAction.get(ImportAction.class));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   114
        toolbar.add(((NodeAction) RemoveAction.get(RemoveAction.class)).createContextAwareInstance(this.getLookup()));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   115
        toolbar.add(RemoveAllAction.get(RemoveAllAction.class));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   116
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   117
        toolbar.add(((NodeAction) SaveAsAction.get(SaveAsAction.class)).createContextAwareInstance(this.getLookup()));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   118
        toolbar.add(SaveAllAction.get(SaveAllAction.class));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   119
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   120
        toolbar.add(StructuredViewAction.get(StructuredViewAction.class).getToolbarPresenter());
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   121
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   122
        for (Toolbar tb : ToolbarPool.getDefault().getToolbars()) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   123
            tb.setVisible(false);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   124
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   125
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   126
        initOrganizers();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   127
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   128
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   129
    public void setOrganizer(GroupOrganizer organizer) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   130
        this.organizer = organizer;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   131
        updateStructure();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   132
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   133
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   134
    private void initOrganizers() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   135
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   136
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   137
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   138
    private void initReceivers() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   139
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   140
        final GroupCallback callback = new GroupCallback() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   141
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   142
            public void started(Group g) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   143
                getDocument().addGroup(g);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   144
            }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   145
        };
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   146
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   147
        Collection<? extends GroupReceiver> receivers = Lookup.getDefault().lookupAll(GroupReceiver.class);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   148
        if (receivers.size() > 0) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   149
            JPanel panel = new JPanel();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   150
            panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   151
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   152
            for (GroupReceiver r : receivers) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   153
                Component c = r.init(callback);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   154
                panel.add(c);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   155
            }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   156
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   157
            jPanel2.add(panel, BorderLayout.PAGE_START);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   158
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   159
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   160
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   161
    private void updateStructure() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   162
        root.init("", organizer, new ArrayList<String>(), document.getGroups());
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   163
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   164
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   165
    public void clear() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   166
        document.clear();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   167
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   168
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   169
    public ExplorerManager getExplorerManager() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   170
        return manager;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   171
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   172
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   173
    public GraphDocument getDocument() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   174
        return document;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   175
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   176
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   177
    /**
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   178
     * Gets default instance. Do not use directly: reserved for *.settings files only,
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   179
     * i.e. deserialization routines; otherwise you could get a non-deserialized instance.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   180
     * To obtain the singleton instance, use {@link findInstance}.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   181
     */
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   182
    public static synchronized OutlineTopComponent getDefault() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   183
        if (instance == null) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   184
            instance = new OutlineTopComponent();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   185
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   186
        return instance;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   187
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   188
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   189
    /**
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   190
     * Obtain the OutlineTopComponent instance. Never call {@link #getDefault} directly!
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   191
     */
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   192
    public static synchronized OutlineTopComponent findInstance() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   193
        TopComponent win = WindowManager.getDefault().findTopComponent(PREFERRED_ID);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   194
        if (win == null) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   195
            ErrorManager.getDefault().log(ErrorManager.WARNING, "Cannot find Outline component. It will not be located properly in the window system.");
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   196
            return getDefault();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   197
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   198
        if (win instanceof OutlineTopComponent) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   199
            return (OutlineTopComponent) win;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   200
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   201
        ErrorManager.getDefault().log(ErrorManager.WARNING, "There seem to be multiple components with the '" + PREFERRED_ID + "' ID. That is a potential source of errors and unexpected behavior.");
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   202
        return getDefault();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   203
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   204
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   205
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   206
    public int getPersistenceType() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   207
        return TopComponent.PERSISTENCE_ALWAYS;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   208
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   209
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   210
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   211
    public void componentOpened() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   212
        this.requestActive();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   213
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   214
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   215
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   216
    public void componentClosed() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   217
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   218
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   219
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   220
    protected String preferredID() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   221
        return PREFERRED_ID;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   222
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   223
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   224
    public void resultChanged(LookupEvent lookupEvent) {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   225
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   226
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   227
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   228
    public void readExternal(ObjectInput objectInput) throws IOException, ClassNotFoundException {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   229
        // Not called when user starts application for the first time
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   230
        super.readExternal(objectInput);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   231
        ((BeanTreeView) this.jScrollPane1).setRootVisible(false);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   232
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   233
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   234
    @Override
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   235
    public void writeExternal(ObjectOutput objectOutput) throws IOException {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   236
        super.writeExternal(objectOutput);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   237
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   238
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   239
    static final class ResolvableHelper implements Serializable {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   240
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   241
        private static final long serialVersionUID = 1L;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   242
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   243
        public Object readResolve() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   244
            return OutlineTopComponent.getDefault();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   245
        }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   246
    }
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   247
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   248
    /** This method is called from within the constructor to
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   249
     * initialize the form.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   250
     * WARNING: Do NOT modify this code. The content of this method is
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   251
     * always regenerated by the Form Editor.
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   252
     */
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   253
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   254
    private void initComponents() {
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   255
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   256
        jPanel2 = new javax.swing.JPanel();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   257
        jScrollPane1 = new BeanTreeView();
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   258
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   259
        setLayout(new java.awt.BorderLayout());
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   260
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   261
        jPanel2.setLayout(new java.awt.BorderLayout());
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   262
        jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   263
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   264
        add(jPanel2, java.awt.BorderLayout.CENTER);
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   265
    }// </editor-fold>//GEN-END:initComponents
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   266
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   267
    // Variables declaration - do not modify//GEN-BEGIN:variables
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   268
    private javax.swing.JPanel jPanel2;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   269
    private javax.swing.JScrollPane jScrollPane1;
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   270
    // End of variables declaration//GEN-END:variables
d0bebc7eefc2 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
   271
}