/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.intrace.visualvm.actions; import com.sun.tools.visualvm.application.Application; import com.sun.tools.visualvm.application.jvm.Jvm; import com.sun.tools.visualvm.application.jvm.JvmFactory; import com.sun.tools.visualvm.core.ui.DataSourceWindowManager; import com.sun.tools.visualvm.core.ui.actions.SingleDataSourceAction; import java.awt.event.ActionEvent; import org.intrace.visualvm.impl.InTraceDataSource; import org.openide.util.NbBundle; /** * * @author mch50 */ public class InTraceApplicationAction extends SingleDataSourceAction<Application> { @Override protected void actionPerformed(Application app, ActionEvent actionEvent) { InTraceDataSource dataSource = new InTraceDataSource(app); DataSourceWindowManager.sharedInstance().openDataSource(dataSource); } @Override protected boolean isEnabled(Application app) { Jvm jvm = JvmFactory.getJVMFor(app); return app.isLocalApplication() && jvm.isAttachable() && jvm.isGetSystemPropertiesSupported(); } public static synchronized InTraceApplicationAction newInstance() { return new InTraceApplicationAction(); } private InTraceApplicationAction() { super(Application.class); putValue(NAME, NbBundle.getMessage(InTraceApplicationAction.class, "InTraceApplicationAction.title")); // NOI18N } }