1 19 20 package org.netbeans.modules.apisupport.project.ui.wizard.moduleinstall; 21 22 import java.net.URL ; 23 import java.util.HashMap ; 24 import java.util.Map ; 25 import org.netbeans.modules.apisupport.project.CreatedModifiedFiles; 26 import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator; 27 import org.openide.WizardDescriptor; 28 29 32 final class DataModel extends BasicWizardIterator.BasicDataModel { 33 34 static final String OPENIDE_MODULE_INSTALL = "OpenIDE-Module-Install"; private static final String INSTALLER_CLASS_NAME = "Installer"; 37 private CreatedModifiedFiles cmf; 38 39 DataModel(final WizardDescriptor wiz) { 40 super(wiz); 41 } 42 43 CreatedModifiedFiles getCreatedModifiedFiles() { 44 if (cmf == null) { 45 regenerate(); 46 } 47 return cmf; 48 } 49 50 private void regenerate() { 51 cmf = new CreatedModifiedFiles(getProject()); 52 53 String className = INSTALLER_CLASS_NAME; 55 String path = getDefaultPackagePath(className + ".java", false); int i = 0; 57 while (alreadyExist(path)) { 58 className = INSTALLER_CLASS_NAME + '_' + ++i; 59 path = getDefaultPackagePath(className + ".java", false); } 61 62 Map basicTokens = new HashMap (); 64 basicTokens.put("@@PACKAGE_NAME@@", getPackageName()); basicTokens.put("@@CLASS_NAME@@", className); URL template = DataModel.class.getResource("moduleInstall.javx"); cmf.add(cmf.createFileWithSubstitutions(path, template, basicTokens)); 70 71 cmf.add(cmf.addModuleDependency("org.openide.modules")); cmf.add(cmf.addModuleDependency("org.openide.util")); 74 Map attribs = new HashMap (); 76 attribs.put(OPENIDE_MODULE_INSTALL, getPackageName().replace('.','/') + '/' + className + ".class"); cmf.add(cmf.manifestModification(null, attribs)); 78 } 79 80 private void reset() { 81 cmf = null; 82 } 83 84 public void setPackageName(String packageName) { 85 super.setPackageName(packageName); 86 reset(); 87 } 88 89 private boolean alreadyExist(String relPath) { 90 return getProject().getProjectDirectory().getFileObject(relPath) != null; 91 } 92 93 } 94 | Popular Tags |