/*
* Copyright (c) 2012 Sam Harwell, Tunnel Vision Laboratories LLC
* All rights reserved.
*
* The source code of this document is proprietary work, and is not licensed for
* distribution. For information about licensing, contact Sam Harwell at:
* sam@tunnelvisionlabs.com
*/
package org.antlr.works.editor.st4.navigation;
import org.antlr.netbeans.editor.navigation.AbstractNavigatorPanel;
import org.antlr.works.editor.st4.StringTemplateEditorKit;
import org.antlr.works.editor.st4.TemplateParserDataDefinitions;
import org.netbeans.api.annotations.common.CheckForNull;
import org.netbeans.spi.navigator.NavigatorPanel.Registration;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
@NbBundle.Messages({
"LBL_templates=Templates",
"HINT_templates=Templates"
})
@Registration(mimeType = StringTemplateEditorKit.TEMPLATE_MIME_TYPE, position = 100, displayName = "#LBL_templates")
public class TemplatesPanel extends AbstractNavigatorPanel<TemplatesPanelUI> {
private static volatile TemplatesPanel INSTANCE;
public TemplatesPanel() {
super(StringTemplateEditorKit.TEMPLATE_MIME_TYPE, TemplateParserDataDefinitions.NAVIGATOR_ROOT, TemplateParserDataDefinitions.NAVIGATOR_UI_VISIBLE);
}
@Override
public String getDisplayName() {
return Bundle.LBL_templates();
}
@Override
public String getDisplayHint() {
return Bundle.HINT_templates();
}
@Override
public void panelActivated(Lookup context) {
INSTANCE = this;
super.panelActivated(context);
}
@Override
public void panelDeactivated() {
INSTANCE = null;
super.panelDeactivated();
getComponent().showWaitNode();
}
@Override
public Lookup getLookup() {
return getComponent().getLookup();
}
@CheckForNull
public static TemplatesPanel getInstance() {
return INSTANCE;
}
@Override
protected TemplatesPanelUI createPanelUI() {
return new TemplatesPanelUI();
}
}