The VisualVM View wizard creates a new VisualVM View
for a selected VisualVM data source.
You open the New VisualVM View wizard by right-clicking a
module project, choosing New > Other and selecting VisualVM View
from the Module Development category.
In the Name and Location page, you have to set the following:
Prefix. Specifies the prefix for the new
VisualVM classes that will be generated by the wizard. This
value also sets the text in the view's tab.
Data Source. Specifies the data source for which
you are creating the view:
Application
CoreDump
DataSource
HeapDump
Host
SnapShot
ThreadDump
Note: If you select "DataSource", you will create a new
view that will be shown for all data sources. Selecting any
of the others will create a new view only for the specific data source
that you selected.
Package Name. Specifies the name of the package where the
generated classes will be created.
visualvm-2.0.6/templates/apisupport/manifest.mf 0000644 0001750 0001750 00000000333 13767155557 020067 0 ustar apo apo Manifest-Version: 1.0
OpenIDE-Module: org.graalvm.visualvm.apisupport
OpenIDE-Module-Layer: org/graalvm/visualvm/apisupport/layer.xml
OpenIDE-Module-Localizing-Bundle: org/graalvm/visualvm/apisupport/Bundle.properties
visualvm-2.0.6/templates/apisupport/src/ 0000755 0001750 0001750 00000000000 13767155557 016525 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/ 0000755 0001750 0001750 00000000000 13767155557 017314 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/graalvm/ 0000755 0001750 0001750 00000000000 13767155557 020745 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/ 0000755 0001750 0001750 00000000000 13767155557 022613 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/ 0000755 0001750 0001750 00000000000 13767155557 025021 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/ 0000755 0001750 0001750 00000000000 13767155557 025752 5 ustar apo apo ././@LongLink 0000644 0000000 0000000 00000000147 00000000000 011605 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/NameAndLocationPanel.form visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/NameAndLocationPanel.fo0000644 0001750 0001750 00000030013 13767155557 032251 0 ustar apo apo
././@LongLink 0000644 0000000 0000000 00000000157 00000000000 011606 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/templateVisualVMViewProvider.javx visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/templateVisualVMViewPro0000644 0001750 0001750 00000004347 13767155557 032463 0 ustar apo apo <#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">
package ${PACKAGENAME};
import org.graalvm.visualvm.application.Application;
import org.graalvm.visualvm.core.datasource.DataSource;
import org.graalvm.visualvm.core.snapshot.Snapshot;
import org.graalvm.visualvm.core.ui.DataSourceView;
import org.graalvm.visualvm.core.ui.DataSourceViewProvider;
import org.graalvm.visualvm.core.ui.DataSourceViewsManager;
import org.graalvm.visualvm.core.ui.PluggableDataSourceViewProvider;
import org.graalvm.visualvm.coredump.CoreDump;
import org.graalvm.visualvm.heapdump.HeapDump;
import org.graalvm.visualvm.host.Host;
import org.graalvm.visualvm.threaddump.ThreadDump;
import java.util.Set;
public class ${TEMPLATENAME}ViewProvider extends PluggableDataSourceViewProvider<${DISPLAYNAME}> {
private static class Singleton {
final private static ${TEMPLATENAME}ViewProvider INSTANCE = new ${TEMPLATENAME}ViewProvider();
}
private ${TEMPLATENAME}ViewProvider() {}
// TODO adjust the view visibility
@Override
public boolean supportsViewFor(${DISPLAYNAME} my${DISPLAYNAME}) {
//Always shown:
return true;
}
@Override
public synchronized DataSourceView createView(final ${DISPLAYNAME} my${DISPLAYNAME}) {
return new ${TEMPLATENAME}View(my${DISPLAYNAME}) ;
}
public static ${TEMPLATENAME}ViewProvider getInstance() {
return Singleton.INSTANCE;
}
/**
* TODO Call this method from the module Installer#restored()
**/
public static void install() {
DataSourceViewsManager.sharedInstance().addViewProvider(Singleton.INSTANCE, ${DISPLAYNAME}.class);
}
/**
* TODO Call this method from the module Installer#uninstalled()
**/
public static void uninstall() {
DataSourceViewsManager.sharedInstance().removeViewProvider(Singleton.INSTANCE);
}
@Override
public Set getPluggableLocations(DataSourceView arg0) {
// TODO update the view supported locations (DataViewComponent.TOP_LEFT, DataViewComponent.TOP_RIGHT, DataViewComponent.BOTTOM_LEFT, DataViewComponent.BOTTOM_RIGHT)
return ALL_LOCATIONS;
}
}
././@LongLink 0000644 0000000 0000000 00000000147 00000000000 011605 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/NameAndLocationPanel.java visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/NameAndLocationPanel.ja0000644 0001750 0001750 00000036122 13767155557 032246 0 ustar apo apo
package org.graalvm.visualvm.apisupport.tabs;
import java.awt.Color;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.modules.apisupport.project.CreatedModifiedFiles;
import org.netbeans.modules.apisupport.project.NbModuleProject;
import org.netbeans.modules.apisupport.project.ui.UIUtil;
import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator;
import org.netbeans.modules.apisupport.project.universe.ModuleEntry;
import org.netbeans.modules.apisupport.project.universe.NbPlatform;
import org.openide.WizardDescriptor;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
/**
* The second panel in project template wizard.
*
* @author Milos Kleint
*/
final class NameAndLocationPanel extends BasicWizardIterator.Panel {
private static final String PROJECT_TEMPLATES_DIR = "Templates/Project"; // NOI18N
private static final String DEFAULT_CATEGORY_PATH = PROJECT_TEMPLATES_DIR + "/Other"; // NOI18N
private NewProjectIterator.DataModel data;
/** Creates new NameAndLocationPanel */
NameAndLocationPanel(WizardDescriptor setting, NewProjectIterator.DataModel data) {
super(setting);
this.data = data;
initComponents();
initAccessibility();
Color lblBgr = UIManager.getColor("Label.background"); // NOI18N
putClientProperty("NewFileWizard_Title", getMessage("LBL_ProjectWizardTitle"));
modifiedFilesValue.setBackground(lblBgr);
createdFilesValue.setBackground(lblBgr);
modifiedFilesValue.setEditable(false);
createdFilesValue.setEditable(false);
DocumentListener dListener = new UIUtil.DocumentAdapter() {
public void insertUpdate(DocumentEvent e) {
if (checkValidity()) {
updateData();
}
}
};
txtName.getDocument().addDocumentListener(dListener);
if (comCategory.getEditor().getEditorComponent() instanceof JTextField) {
JTextField txt = (JTextField) comCategory.getEditor().getEditorComponent();
txt.getDocument().addDocumentListener(dListener);
}
if (comPackageName.getEditor().getEditorComponent() instanceof JTextField) {
JTextField txt = (JTextField)comPackageName.getEditor().getEditorComponent();
txt.getDocument().addDocumentListener(dListener);
}
}
protected void storeToDataModel() {
updateData();
}
private void updateData() {
data.setPackageName(comPackageName.getEditor().getItem().toString());
data.setName(txtName.getText().trim());
data.setCategory(comCategory.getEditor().getItem().toString());
NewProjectIterator.generateFileChanges(data);
CreatedModifiedFiles fls = data.getCreatedModifiedFiles();
createdFilesValue.setText(generateText(fls.getCreatedPaths()));
modifiedFilesValue.setText(generateText(fls.getModifiedPaths()));
//#68294 check if the paths for newly created files are valid or not..
String[] invalid = data.getCreatedModifiedFiles().getInvalidPaths();
if (invalid.length > 0) {
setError(NbBundle.getMessage(NameAndLocationPanel.class, "ERR_ToBeCreateFileExists", invalid[0]));
}
}
protected void readFromDataModel() {
checkValidity();
}
protected String getPanelName() {
return getMessage("LBL_NameLocation_Title");
}
private boolean checkValidity() {
// if (!checkPlatformValidity()) {
// return false;
// }
if (txtName.getText().trim().length() == 0) {
setError(getMessage("ERR_Name_Prefix_Empty"));
return false;
}
if (!Utilities.isJavaIdentifier(txtName.getText().trim())) {
setError(getMessage("ERR_Name_Prefix_Invalid"));
return false;
}
String packageName = comPackageName.getEditor().getItem().toString().trim();
if (packageName.length() == 0 || !UIUtil.isValidPackageName(packageName)) {
setError(getMessage("ERR_Package_Invalid"));
return false;
}
markValid();
return true;
}
// private boolean checkPlatformValidity() {
// NbModuleProject nbprj = data.getProject().getLookup().lookup(NbModuleProject.class);
// if (nbprj == null) {
// //ignore this check for non default netbeans projects.
// return true;
// }
// NbPlatform platform = nbprj.getPlatform(false);
// if (platform == null) {
// setError(getMessage("ERR_No_Platform"));
// return false;
// }
// ModuleEntry[] entries = platform.getModules();
// Collection modules = new HashSet(Arrays.asList(NewProjectIterator.MODULES));
//
// for (int i = 0; i < entries.length; i++) {
// modules.remove(entries[i].getCodeNameBase());
// }
// if (modules.size() > 0) {
// setError(getMessage("ERR_Missing_Modules"));
// return false;
// }
// return true;
// }
protected HelpCtx getHelp() {
return new HelpCtx(NameAndLocationPanel.class);
}
private static String getMessage(String key) {
return NbBundle.getMessage(NameAndLocationPanel.class, key);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// //GEN-BEGIN:initComponents
private void initComponents() {
lblName = new javax.swing.JLabel();
txtName = new javax.swing.JTextField();
lblDisplayName = new javax.swing.JLabel();
lblProjectName = new javax.swing.JLabel();
txtProjectName = new JTextField(ProjectUtils.getInformation(this.data.getProject()).getDisplayName());
lblPackageName = new javax.swing.JLabel();
comPackageName = UIUtil.createPackageComboBox(this.data.getSourceRootGroup());
createdFiles = new javax.swing.JLabel();
modifiedFiles = new javax.swing.JLabel();
filler = new javax.swing.JLabel();
createdFilesValue = new javax.swing.JTextArea();
modifiedFilesValue = new javax.swing.JTextArea();
comCategory = new javax.swing.JComboBox();
lblName.setLabelFor(txtName);
org.openide.awt.Mnemonics.setLocalizedText(lblName, org.openide.util.NbBundle.getMessage(NameAndLocationPanel.class, "LBL_Name_1")); // NOI18N
lblDisplayName.setLabelFor(comCategory);
org.openide.awt.Mnemonics.setLocalizedText(lblDisplayName, org.openide.util.NbBundle.getMessage(NameAndLocationPanel.class, "LBL_DisplayName_1")); // NOI18N
lblProjectName.setLabelFor(txtProjectName);
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/graalvm/visualvm/apisupport/tabs/Bundle"); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lblProjectName, bundle.getString("LBL_ProjectName_1")); // NOI18N
txtProjectName.setEditable(false);
lblPackageName.setLabelFor(comPackageName);
org.openide.awt.Mnemonics.setLocalizedText(lblPackageName, bundle.getString("LBL_PackageName_1")); // NOI18N
comPackageName.setEditable(true);
createdFiles.setLabelFor(createdFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(createdFiles, bundle.getString("LBL_CreatedFiles_1")); // NOI18N
modifiedFiles.setLabelFor(modifiedFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(modifiedFiles, bundle.getString("LBL_ModifiedFiles_1")); // NOI18N
createdFilesValue.setColumns(20);
createdFilesValue.setRows(5);
createdFilesValue.setBorder(null);
modifiedFilesValue.setColumns(20);
modifiedFilesValue.setRows(5);
modifiedFilesValue.setToolTipText("modifiedFilesValue");
modifiedFilesValue.setBorder(null);
comCategory.setEditable(true);
comCategory.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Application", "CoreDump", "DataSource", "HeapDump", "Host", "Snapshot", "ThreadDump" }));
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(layout.createSequentialGroup()
.add(lblName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 64, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 54, Short.MAX_VALUE))
.add(lblProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 118, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 118, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(createdFiles, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 118, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(modifiedFiles, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 118, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(12, 12, 12)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(txtName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
.add(comCategory, 0, 296, Short.MAX_VALUE)
.add(txtProjectName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
.add(comPackageName, 0, 296, Short.MAX_VALUE)
.add(createdFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)
.add(modifiedFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 296, Short.MAX_VALUE)))
.add(filler, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 400, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(layout.createSequentialGroup()
.add(lblDisplayName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 103, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addContainerGap(323, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(2, 2, 2)
.add(lblName))
.add(txtName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(6, 6, 6)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.CENTER)
.add(lblDisplayName)
.add(comCategory, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(18, 18, 18)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(lblProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(txtProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(6, 6, 6)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(lblPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(comPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(36, 36, 36)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(createdFiles)
.add(createdFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE))
.add(6, 6, 6)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(modifiedFiles)
.add(modifiedFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE))
.add(filler, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 92, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(20, 20, 20))
);
}// //GEN-END:initComponents
private void initAccessibility() {
this.getAccessibleContext().setAccessibleDescription(getMessage("ACS_NameAndLocationPanel"));
comPackageName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_PackageName"));
comCategory.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_DisplayName"));
txtName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_Name"));
txtProjectName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ProjectName"));
createdFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_CreatedFilesValue"));
modifiedFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ModifiedFilesValue"));
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JComboBox comCategory;
private javax.swing.JComboBox comPackageName;
private javax.swing.JLabel createdFiles;
private javax.swing.JTextArea createdFilesValue;
private javax.swing.JLabel filler;
private javax.swing.JLabel lblDisplayName;
private javax.swing.JLabel lblName;
private javax.swing.JLabel lblPackageName;
private javax.swing.JLabel lblProjectName;
private javax.swing.JLabel modifiedFiles;
private javax.swing.JTextArea modifiedFilesValue;
private javax.swing.JTextField txtName;
private javax.swing.JTextField txtProjectName;
// End of variables declaration//GEN-END:variables
private static String generateText(String[] relPaths) {
StringBuffer sb = new StringBuffer();
if (relPaths.length > 0) {
for (int i = 0; i < relPaths.length; i++) {
if (i > 0) {
sb.append('\n');
}
sb.append(relPaths[i]);
}
}
return sb.toString();
}
}
././@LongLink 0000644 0000000 0000000 00000000147 00000000000 011605 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/templateVisualVMView.javx visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/templateVisualVMView.ja0000644 0001750 0001750 00000004543 13767155557 032371 0 ustar apo apo <#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">
package ${PACKAGENAME};
import org.graalvm.visualvm.application.Application;
import org.graalvm.visualvm.core.datasource.DataSource;
import org.graalvm.visualvm.core.snapshot.Snapshot;
import org.graalvm.visualvm.core.ui.DataSourceView;
import org.graalvm.visualvm.core.ui.components.DataViewComponent;
import org.graalvm.visualvm.coredump.CoreDump;
import org.graalvm.visualvm.heapdump.HeapDump;
import org.graalvm.visualvm.host.Host;
import org.graalvm.visualvm.threaddump.ThreadDump;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import org.openide.util.ImageUtilities;
public class ${TEMPLATENAME}View extends DataSourceView {
private DataViewComponent dvc;
// TODO update the icon path
private static final String IMAGE_PATH = "org/graalvm/visualvm/coredump/resources/coredump.png"; // NOI18N
public ${TEMPLATENAME}View(${DISPLAYNAME} My${DISPLAYNAME}) {
super(My${DISPLAYNAME}, "${TEMPLATENAME}", new ImageIcon(ImageUtilities.loadImage(IMAGE_PATH, true)).getImage(), 60, false);
}
@Override
protected DataViewComponent createComponent() {
//Data area for master view:
JEditorPane generalDataArea = new JEditorPane();
generalDataArea.setBorder(BorderFactory.createEmptyBorder(14, 8, 14, 8));
//Panel, which we'll reuse in all four of our detail views for this sample:
JPanel panel = new JPanel();
//Master view:
DataViewComponent.MasterView masterView = new DataViewComponent.MasterView
("${TEMPLATENAME} Overview", null, generalDataArea);
//Configuration of master view:
DataViewComponent.MasterViewConfiguration masterConfiguration =
new DataViewComponent.MasterViewConfiguration(false);
//Add the master view and configuration view to the component:
dvc = new DataViewComponent(masterView, masterConfiguration);
// TODO adjust the details view properties
//Add detail views to the component:
dvc.addDetailsView(new DataViewComponent.DetailsView(
"${TEMPLATENAME} Details", null, 10, panel, null), DataViewComponent.TOP_LEFT);
return dvc;
}
}
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/NewProjectIterator.java0000644 0001750 0001750 00000013003 13767155557 032404 0 ustar apo apo package org.graalvm.visualvm.apisupport.tabs;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.netbeans.api.project.Project;
import org.netbeans.modules.apisupport.project.CreatedModifiedFiles;
import org.netbeans.modules.apisupport.project.spi.NbModuleProvider;
import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator;
import org.openide.WizardDescriptor;
import org.openide.filesystems.FileObject;
final class NewProjectIterator extends BasicWizardIterator {
private NewProjectIterator.DataModel data;
public static final String[] MODULES = {
"org.openide.util", // NOI18N
"org.graalvm.visualvm.core", // NOI18N
"org.graalvm.visualvm.application", // NOI18N
"org.graalvm.visualvm.coredump", // NOI18N
"org.graalvm.visualvm.heapdump", // NOI18N
"org.graalvm.visualvm.threaddump", // NOI18N
"org.graalvm.visualvm.host" // NOI18N
};
private NewProjectIterator() { /* Use factory method. */ }
;
public static NewProjectIterator createIterator() {
return new NewProjectIterator();
}
public Set instantiate() throws IOException {
CreatedModifiedFiles cmf = data.getCreatedModifiedFiles();
cmf.run();
return getCreatedFiles(cmf, data.getProject());
}
protected BasicWizardIterator.Panel[] createPanels(WizardDescriptor wiz) {
data = new NewProjectIterator.DataModel(wiz);
return new BasicWizardIterator.Panel[]{
new NameAndLocationPanel(wiz, data)
};
}
public
@Override
void uninitialize( WizardDescriptor wiz) {
super.uninitialize(wiz);
data = null;
}
static final class DataModel extends BasicWizardIterator.BasicDataModel {
private Project template;
private String name;
private String displayName;
private String category;
private CreatedModifiedFiles files;
DataModel(WizardDescriptor wiz) {
super(wiz);
}
public CreatedModifiedFiles getCreatedModifiedFiles() {
return getFiles();
}
public void setCreatedModifiedFiles(CreatedModifiedFiles files) {
this.setFiles(files);
}
public Project getTemplate() {
return template;
}
public void setTemplate(Project template) {
this.template = template;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public CreatedModifiedFiles getFiles() {
return files;
}
public void setFiles(CreatedModifiedFiles files) {
this.files = files;
}
}
public static void generateFileChanges(DataModel model) {
CreatedModifiedFiles fileChanges = new CreatedModifiedFiles(model.getProject());
NbModuleProvider moduleInfo = model.getModuleInfo();
final String category = model.getCategory();
final String name = model.getName();
final String packageName = model.getPackageName();
HashMap replaceTokens = new HashMap();
replaceTokens.put("DISPLAYNAME", category);//NOI18N
replaceTokens.put("TEMPLATENAME", name);//NOI18N
replaceTokens.put("PACKAGENAME", packageName);//NOI18N
// Update project dependencies
for (int i = 0; i < MODULES.length; i++) {
fileChanges.add(fileChanges.addModuleDependency(MODULES[i]));
}
// // Generate Support class:
// String iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
// name, "ViewSupport.java"); //NOI18N
//
// FileObject template = CreatedModifiedFiles.getTemplate("templateViewSupport.java");//NOI18N
//
// fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
//
// Generate view provider class:
String iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
name, "ViewProvider.java"); //NOI18N
FileObject template = CreatedModifiedFiles.getTemplate("templateViewProvider.java");//NOI18N
fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
// Generate view class:
iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
name, "View.java"); //NOI18N
template = CreatedModifiedFiles.getTemplate("templateView.java");//NOI18N
fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
model.setCreatedModifiedFiles(fileChanges);
}
private static String getRelativePath(String rootPath, String fullyQualifiedPackageName,
String prefix, String postfix) {
StringBuffer sb = new StringBuffer();
sb.append(rootPath).append('/').
append(fullyQualifiedPackageName.replace('.', '/')).
append('/').append(prefix).append(postfix);
return sb.toString();
}
}
././@LongLink 0000644 0000000 0000000 00000000146 00000000000 011604 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/visualvmview-helpset.xml visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/visualvmview-helpset.xm0000644 0001750 0001750 00000000542 13767155557 032524 0 ustar apo apo
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/visualVMView.html 0000644 0001750 0001750 00000000433 13767155557 031241 0 ustar apo apo
Creates a skeleton VisualVM tab.
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/tabs/Bundle.properties 0000644 0001750 0001750 00000003226 13767155557 031304 0 ustar apo apo # To change this template, choose Tools | Templates
# and open the template in the editor.
Templates/VisualVMPluginDevelopment/tab=View (Tab)
LBL_ProjectWizardTitle=VisualVM View (Tab)
LBL_ProjectSelection_Title=Select Project
LBL_NameLocation_Title=Name and Location
LBL_ProjectName=&Project\:
LBL_PackageName=Pac&kage\:
LBL_CreatedFiles=&Created Files\:
LBL_ModifiedFiles=&Modified Files\:
ACS_SelectProjectPanel=Select Project panel
ACS_CTL_btnProject=Browse Project button
ACS_CTL_comProject=Select from opened projects combobox
LBL_Name=&Template Name \:
LBL_DisplayName=D&isplay Name \:
LBL_Category=C&ategory
LBL_Project_Label=&Project \:
LBL_Browse=Bro&wse...
ACS_NameAndLocationPanel=Name and Location Panel
ACS_CTL_PackageName=Package Name
ACS_CTL_Category=Category
ACS_CTL_DisplayName=Display Name
ACS_CTL_Name=Template Name
ACS_CTL_ProjectName=Project Name
ACS_CTL_CreatedFilesValue=Created Files
ACS_CTL_ModifiedFilesValue=Modified Files
MSG_No_Projects=No Projects opened
MSG_NoExternalRoots=Projects with external roots are not supported.
MSG_NoProjectSelected=A project needs to be selected.
ERR_Category_Invalid=Category is malformed.
ERR_Name_Prefix_Empty=Template Name is empty.
ERR_Name_Prefix_Invalid=Template Name is invalid, not a Java identifier.
ERR_Package_Invalid=Package is blank or malformed.
ERR_ToBeCreateFileExists=The file {0} already exists.
ERR_Missing_Modules=The NetBeans platform is missing required modules.
ERR_No_Platform=No NetBeans Platform defined.
LBL_Name_1=Name:
LBL_DisplayName_1=Data Source:
LBL_ProjectName_1=Project Name:
LBL_PackageName_1=Package Name:
LBL_CreatedFiles_1=Created Files:
LBL_ModifiedFiles_1=Modified Files:
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/ 0000755 0001750 0001750 00000000000 13767155557 026304 5 ustar apo apo ././@LongLink 0000644 0000000 0000000 00000000151 00000000000 011600 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NameAndLocationPanel.form visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NameAndLocationPanel.0000644 0001750 0001750 00000026171 13767155557 032270 0 ustar apo apo
././@LongLink 0000644 0000000 0000000 00000000162 00000000000 011602 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModelProvider.javx visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModel0000644 0001750 0001750 00000002400 13767155557 032446 0 ustar apo apo <#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">
package ${PACKAGENAME};
import org.graalvm.visualvm.core.datasource.DataSource;
import org.graalvm.visualvm.core.model.AbstractModelProvider;
public class ${TEMPLATENAME}ModelProvider extends AbstractModelProvider<${TEMPLATENAME}Model, DataSource> {
private static class Singleton {
final private static ${TEMPLATENAME}ModelProvider INSTANCE = new ${TEMPLATENAME}ModelProvider();
}
private ${TEMPLATENAME}ModelProvider() {}
@Override
public ${TEMPLATENAME}Model createModelFor(DataSource datasource) {
// TODO check the datasource and create an appropriate model, eventually
return null;
}
public static ${TEMPLATENAME}ModelProvider getInstance() {
return Singleton.INSTANCE;
}
/**
* TODO Call this method from the module Installer#restored()
**/
public static void install() {
// TODO register with the appropriate model factory
}
/**
* TODO Call this method from the module Installer#uninstalled()
**/
public static void uninstall() {
// TODO unregister from the appropriate model factory
}
}
././@LongLink 0000644 0000000 0000000 00000000151 00000000000 011600 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NameAndLocationPanel.java visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NameAndLocationPanel.0000644 0001750 0001750 00000036220 13767155557 032264 0 ustar apo apo
package org.graalvm.visualvm.apisupport.models;
import org.graalvm.visualvm.apisupport.datasources.*;
import java.awt.Color;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import org.netbeans.api.project.ProjectUtils;
import org.netbeans.modules.apisupport.project.CreatedModifiedFiles;
import org.netbeans.modules.apisupport.project.NbModuleProject;
import org.netbeans.modules.apisupport.project.ui.UIUtil;
import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator;
import org.netbeans.modules.apisupport.project.universe.ModuleEntry;
import org.netbeans.modules.apisupport.project.universe.NbPlatform;
import org.openide.WizardDescriptor;
import org.openide.util.HelpCtx;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
/**
* The second panel in project template wizard.
*
* @author Milos Kleint
*/
final class NameAndLocationPanel extends BasicWizardIterator.Panel {
private static final String PROJECT_TEMPLATES_DIR = "Templates/Project"; // NOI18N
private static final String DEFAULT_CATEGORY_PATH = PROJECT_TEMPLATES_DIR + "/Other"; // NOI18N
private NewProjectIterator.DataModel data;
/** Creates new NameAndLocationPanel */
NameAndLocationPanel(WizardDescriptor setting, NewProjectIterator.DataModel data) {
super(setting);
this.data = data;
initComponents();
initAccessibility();
Color lblBgr = UIManager.getColor("Label.background"); // NOI18N
putClientProperty("NewFileWizard_Title", getMessage("LBL_ProjectWizardTitle"));
modifiedFilesValue.setBackground(lblBgr);
createdFilesValue.setBackground(lblBgr);
modifiedFilesValue.setEditable(false);
createdFilesValue.setEditable(false);
DocumentListener dListener = new UIUtil.DocumentAdapter() {
public void insertUpdate(DocumentEvent e) {
if (checkValidity()) {
updateData();
}
}
};
txtName.getDocument().addDocumentListener(dListener);
if (comPackageName.getEditor().getEditorComponent() instanceof JTextField) {
JTextField txt = (JTextField)comPackageName.getEditor().getEditorComponent();
txt.getDocument().addDocumentListener(dListener);
}
}
protected void storeToDataModel() {
updateData();
}
private void updateData() {
data.setPackageName(comPackageName.getEditor().getItem().toString());
data.setName(txtName.getText().trim());
data.setGenerateFactory(generateFactory.isSelected());
NewProjectIterator.generateFileChanges(data);
CreatedModifiedFiles fls = data.getCreatedModifiedFiles();
createdFilesValue.setText(generateText(fls.getCreatedPaths()));
modifiedFilesValue.setText(generateText(fls.getModifiedPaths()));
//#68294 check if the paths for newly created files are valid or not..
String[] invalid = data.getCreatedModifiedFiles().getInvalidPaths();
if (invalid.length > 0) {
setError(NbBundle.getMessage(NameAndLocationPanel.class, "ERR_ToBeCreateFileExists", invalid[0]));
}
}
protected void readFromDataModel() {
checkValidity();
}
protected String getPanelName() {
return getMessage("LBL_NameLocation_Title");
}
private boolean checkValidity() {
// if (!checkPlatformValidity()) {
// return false;
// }
if (txtName.getText().trim().length() == 0) {
setError(getMessage("ERR_Name_Prefix_Empty"));
return false;
}
if (!Utilities.isJavaIdentifier(txtName.getText().trim())) {
setError(getMessage("ERR_Name_Prefix_Invalid"));
return false;
}
String packageName = comPackageName.getEditor().getItem().toString().trim();
if (packageName.length() == 0 || !UIUtil.isValidPackageName(packageName)) {
setError(getMessage("ERR_Package_Invalid"));
return false;
}
markValid();
return true;
}
// private boolean checkPlatformValidity() {
// NbModuleProject nbprj = data.getProject().getLookup().lookup(NbModuleProject.class);
// if (nbprj == null) {
// //ignore this check for non default netbeans projects.
// return true;
// }
// NbPlatform platform = nbprj.getPlatform(false);
// if (platform == null) {
// setError(getMessage("ERR_No_Platform"));
// return false;
// }
// ModuleEntry[] entries = platform.getModules();
// Collection modules = new HashSet(Arrays.asList(NewProjectIterator.MODULES));
//
// for (int i = 0; i < entries.length; i++) {
// modules.remove(entries[i].getCodeNameBase());
// }
// if (modules.size() > 0) {
// setError(getMessage("ERR_Missing_Modules"));
// return false;
// }
// return true;
// }
protected HelpCtx getHelp() {
return new HelpCtx(NameAndLocationPanel.class);
}
private static String getMessage(String key) {
return NbBundle.getMessage(NameAndLocationPanel.class, key);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// //GEN-BEGIN:initComponents
private void initComponents() {
lblName = new javax.swing.JLabel();
txtName = new javax.swing.JTextField();
lblProjectName = new javax.swing.JLabel();
txtProjectName = new JTextField(ProjectUtils.getInformation(this.data.getProject()).getDisplayName());
lblPackageName = new javax.swing.JLabel();
comPackageName = UIUtil.createPackageComboBox(this.data.getSourceRootGroup());
createdFiles = new javax.swing.JLabel();
modifiedFiles = new javax.swing.JLabel();
filler = new javax.swing.JLabel();
createdFilesValue = new javax.swing.JTextArea();
modifiedFilesValue = new javax.swing.JTextArea();
generateFactory = new javax.swing.JCheckBox();
lblName.setLabelFor(txtName);
org.openide.awt.Mnemonics.setLocalizedText(lblName, org.openide.util.NbBundle.getMessage(NameAndLocationPanel.class, "LBL_Name_1")); // NOI18N
lblProjectName.setLabelFor(txtProjectName);
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/graalvm/visualvm/apisupport/tabs/Bundle"); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(lblProjectName, bundle.getString("LBL_ProjectName_1")); // NOI18N
txtProjectName.setEditable(false);
lblPackageName.setLabelFor(comPackageName);
org.openide.awt.Mnemonics.setLocalizedText(lblPackageName, bundle.getString("LBL_PackageName_1")); // NOI18N
comPackageName.setEditable(true);
createdFiles.setLabelFor(createdFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(createdFiles, bundle.getString("LBL_CreatedFiles_1")); // NOI18N
modifiedFiles.setLabelFor(modifiedFilesValue);
org.openide.awt.Mnemonics.setLocalizedText(modifiedFiles, bundle.getString("LBL_ModifiedFiles_1")); // NOI18N
createdFilesValue.setColumns(20);
createdFilesValue.setRows(5);
createdFilesValue.setBorder(null);
modifiedFilesValue.setColumns(20);
modifiedFilesValue.setRows(5);
modifiedFilesValue.setToolTipText("modifiedFilesValue");
modifiedFilesValue.setBorder(null);
org.openide.awt.Mnemonics.setLocalizedText(generateFactory, "Generate Model Factory");
generateFactory.setHorizontalTextPosition(javax.swing.SwingConstants.LEADING);
generateFactory.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
generateFactoryActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(filler, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, generateFactory, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(modifiedFiles, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(createdFiles, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 104, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, createdFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
.add(modifiedFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE))
.addContainerGap())
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, txtName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, txtProjectName, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
.add(comPackageName, 0, 298, Short.MAX_VALUE))
.addContainerGap())))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(txtName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblName))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(txtProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblProjectName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 19, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(6, 6, 6)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(comPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(lblPackageName, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 24, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(18, 18, 18)
.add(generateFactory)
.add(18, 18, 18)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(createdFiles)
.add(createdFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(modifiedFiles)
.add(modifiedFilesValue, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE))
.add(43, 43, 43)
.add(filler, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 76, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(20, 20, 20))
);
}// //GEN-END:initComponents
private void generateFactoryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_generateFactoryActionPerformed
if (checkValidity()) {
updateData();
}
}//GEN-LAST:event_generateFactoryActionPerformed
private void initAccessibility() {
this.getAccessibleContext().setAccessibleDescription(getMessage("ACS_NameAndLocationPanel"));
comPackageName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_PackageName"));
txtName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_Name"));
txtProjectName.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ProjectName"));
createdFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_CreatedFilesValue"));
modifiedFilesValue.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_ModifiedFilesValue"));
generateFactory.getAccessibleContext().setAccessibleDescription(getMessage("ACS_CTL_GenerateModelFactory"));
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JComboBox comPackageName;
private javax.swing.JLabel createdFiles;
private javax.swing.JTextArea createdFilesValue;
private javax.swing.JLabel filler;
private javax.swing.JCheckBox generateFactory;
private javax.swing.JLabel lblName;
private javax.swing.JLabel lblPackageName;
private javax.swing.JLabel lblProjectName;
private javax.swing.JLabel modifiedFiles;
private javax.swing.JTextArea modifiedFilesValue;
private javax.swing.JTextField txtName;
private javax.swing.JTextField txtProjectName;
// End of variables declaration//GEN-END:variables
private static String generateText(String[] relPaths) {
StringBuilder sb = new StringBuilder();
if (relPaths.length > 0) {
for (int i = 0; i < relPaths.length; i++) {
if (i > 0) {
sb.append('\n');
}
sb.append(relPaths[i]);
}
}
return sb.toString();
}
}
././@LongLink 0000644 0000000 0000000 00000000147 00000000000 011605 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NewProjectIterator.java visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/NewProjectIterator.ja0000644 0001750 0001750 00000013532 13767155557 032416 0 ustar apo apo package org.graalvm.visualvm.apisupport.models;
import java.io.IOException;
import java.util.HashMap;
import java.util.Set;
import org.netbeans.api.project.Project;
import org.netbeans.modules.apisupport.project.CreatedModifiedFiles;
import org.netbeans.modules.apisupport.project.spi.NbModuleProvider;
import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator;
import org.openide.WizardDescriptor;
import org.openide.filesystems.FileObject;
final class NewProjectIterator extends BasicWizardIterator {
private NewProjectIterator.DataModel data;
public static final String[] MODULES = {
"org.openide.util", // NOI18N
"org.graalvm.visualvm.core" // NOI18N
};
private NewProjectIterator() { /* Use factory method. */ }
;
public static NewProjectIterator createIterator() {
return new NewProjectIterator();
}
public Set instantiate() throws IOException {
CreatedModifiedFiles cmf = data.getCreatedModifiedFiles();
cmf.run();
return getCreatedFiles(cmf, data.getProject());
}
protected BasicWizardIterator.Panel[] createPanels(WizardDescriptor wiz) {
data = new NewProjectIterator.DataModel(wiz);
return new BasicWizardIterator.Panel[]{
new NameAndLocationPanel(wiz, data)
};
}
public
@Override
void uninitialize( WizardDescriptor wiz) {
super.uninitialize(wiz);
data = null;
}
static final class DataModel extends BasicWizardIterator.BasicDataModel {
private Project template;
private String name;
private String displayName;
private String category;
private CreatedModifiedFiles files;
private boolean generateFactory;
DataModel(WizardDescriptor wiz) {
super(wiz);
}
public CreatedModifiedFiles getCreatedModifiedFiles() {
return getFiles();
}
public void setCreatedModifiedFiles(CreatedModifiedFiles files) {
this.setFiles(files);
}
public Project getTemplate() {
return template;
}
public void setTemplate(Project template) {
this.template = template;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public CreatedModifiedFiles getFiles() {
return files;
}
public void setFiles(CreatedModifiedFiles files) {
this.files = files;
}
public boolean isGenerateFactory() {
return generateFactory;
}
public void setGenerateFactory(boolean generateFactory) {
this.generateFactory = generateFactory;
}
}
public static void generateFileChanges(DataModel model) {
CreatedModifiedFiles fileChanges = new CreatedModifiedFiles(model.getProject());
NbModuleProvider moduleInfo = model.getModuleInfo();
final String category = model.getCategory();
final String name = model.getName();
final String packageName = model.getPackageName();
HashMap replaceTokens = new HashMap();
replaceTokens.put("TEMPLATENAME", name);//NOI18N
replaceTokens.put("PACKAGENAME", packageName);//NOI18N
// Update project dependencies
for (int i = 0; i < MODULES.length; i++) {
fileChanges.add(fileChanges.addModuleDependency(MODULES[i]));
}
// // Generate Support class:
// String iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
// name, "ViewSupport.java"); //NOI18N
//
// FileObject template = CreatedModifiedFiles.getTemplate("templateViewSupport.java");//NOI18N
//
// fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
//
// Generate view provider class:
String iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
name, "ModelProvider.java"); //NOI18N
FileObject template = CreatedModifiedFiles.getTemplate("templateModelProvider.java");//NOI18N
fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
// Generate view class:
iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
name, "Model.java"); //NOI18N
template = CreatedModifiedFiles.getTemplate("templateModel.java");//NOI18N
fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
if (model.isGenerateFactory()) {
iteratorName = getRelativePath(moduleInfo.getSourceDirectoryPath(), packageName,
name, "ModelFactory.java"); //NOI18N
template = CreatedModifiedFiles.getTemplate("templateModelFactory.java");//NOI18N
fileChanges.add(fileChanges.createFileWithSubstitutions(iteratorName, template, replaceTokens));
}
model.setCreatedModifiedFiles(fileChanges);
}
private static String getRelativePath(String rootPath, String fullyQualifiedPackageName,
String prefix, String postfix) {
StringBuilder sb = new StringBuilder();
sb.append(rootPath).append('/').
append(fullyQualifiedPackageName.replace('.', '/')).
append('/').append(prefix).append(postfix);
return sb.toString();
}
}
././@LongLink 0000644 0000000 0000000 00000000161 00000000000 011601 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModelFactory.javx visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModel0000644 0001750 0001750 00000002406 13767155557 032454 0 ustar apo apo <#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">
package ${PACKAGENAME};
import org.graalvm.visualvm.core.model.ModelFactory;
import org.graalvm.visualvm.core.datasource.DataSource;
public class ${TEMPLATENAME}ModelFactory extends ModelFactory<${TEMPLATENAME}Model, DataSource> {
private static class Singleton {
final private static ${TEMPLATENAME}ModelFactory INSTANCE = new ${TEMPLATENAME}ModelFactory();
}
private ${TEMPLATENAME}ModelFactory() {
}
public static ${TEMPLATENAME}ModelFactory getInstance() {
return Singleton.INSTANCE;
}
/**
* Factory method for obtaining the {@link ${TEMPLATENAME}Model} for the given
* {@link DataSource}. Note that there is only one instance of
* {@link ${TEMPLATENAME}Model} for application instance. This {@link ${TEMPLATENAME}Model}
* instance is cached.
*
* @param ds datasource.
*
* @return a {@link ${TEMPLATENAME}Model} instance which encapsulates the
* application's ${TEMPLATENAME} model.
*/
public static ${TEMPLATENAME}Model get${TEMPLATENAME}ModelFor(DataSource ds) {
return getInstance().getModel(ds);
}
} visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/visualVMModel.html 0000644 0001750 0001750 00000000457 13767155557 031727 0 ustar apo apo
Creates a skeleton for a new VisualVM model support.
././@LongLink 0000644 0000000 0000000 00000000152 00000000000 011601 L ustar root root visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModel.javx visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/templateVisualVMModel0000644 0001750 0001750 00000000473 13767155557 032456 0 ustar apo apo <#assign licenseFirst = "/*">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "../Licenses/license-${project.license}.txt">
package ${PACKAGENAME};
import org.graalvm.visualvm.core.model.Model;
public class ${TEMPLATENAME}Model extends Model {
// TODO add model specific properties
}
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/models/Bundle.properties 0000644 0001750 0001750 00000003302 13767155557 031631 0 ustar apo apo # To change this template, choose Tools | Templates
# and open the template in the editor.
Templates/VisualVMPluginDevelopment/model=Model
LBL_ProjectWizardTitle=VisualVM Model
LBL_ProjectSelection_Title=Select Project
LBL_NameLocation_Title=Name and Location
LBL_ProjectName=&Project\:
LBL_PackageName=Pac&kage\:
LBL_CreatedFiles=&Created Files\:
LBL_ModifiedFiles=&Modified Files\:
ACS_SelectProjectPanel=Select Project panel
ACS_CTL_btnProject=Browse Project button
ACS_CTL_comProject=Select from opened projects combobox
LBL_Name=&Template Name \:
LBL_DisplayName=D&isplay Name \:
LBL_Category=C&ategory
LBL_Project_Label=&Project \:
LBL_Browse=Bro&wse...
ACS_NameAndLocationPanel=Name and Location Panel
ACS_CTL_PackageName=Package Name
ACS_CTL_Category=Category
ACS_CTL_DisplayName=Display Name
ACS_CTL_Name=Template Name
ACS_CTL_ProjectName=Project Name
ACS_CTL_CreatedFilesValue=Created Files
ACS_CTL_ModifiedFilesValue=Modified Files
ACS_CTL_GenerateModelFactory=Generate Model Factory
MSG_No_Projects=No Projects opened
MSG_NoExternalRoots=Projects with external roots are not supported.
MSG_NoProjectSelected=A project needs to be selected.
ERR_Category_Invalid=Category is malformed.
ERR_Name_Prefix_Empty=Template Name is empty.
ERR_Name_Prefix_Invalid=Template Name is invalid, not a Java identifier.
ERR_Package_Invalid=Package is blank or malformed.
ERR_ToBeCreateFileExists=The file {0} already exists.
ERR_Missing_Modules=The NetBeans platform is missing required modules.
ERR_No_Platform=No NetBeans Platform defined.
LBL_Name_1=Name:
LBL_DisplayName_1=Data Source:
LBL_ProjectName_1=Project Name:
LBL_PackageName_1=Package Name:
LBL_CreatedFiles_1=Created Files:
LBL_ModifiedFiles_1=Modified Files:
visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/resources/ 0000755 0001750 0001750 00000000000 13767155557 027033 5 ustar apo apo visualvm-2.0.6/templates/apisupport/src/org/graalvm/visualvm/apisupport/resources/search.png 0000644 0001750 0001750 00000001236 13767155557 031010 0 ustar apo apo PNG
IHDR a gAMA 7 tEXtSoftware Adobe ImageReadyqe<