1 19 20 package org.netbeans.modules.apisupport.project.ui.wizard.updatecenter; 21 22 import java.net.URL ; 23 import org.netbeans.modules.apisupport.project.CreatedModifiedFiles; 24 import org.netbeans.modules.apisupport.project.ManifestManager; 25 import org.netbeans.modules.apisupport.project.Util; 26 import org.netbeans.modules.apisupport.project.layers.LayerUtils; 27 import org.netbeans.modules.apisupport.project.ui.wizard.BasicWizardIterator; 28 import org.openide.WizardDescriptor; 29 import org.openide.filesystems.FileObject; 30 import org.openide.filesystems.FileSystem; 31 32 36 final class DataModel extends BasicWizardIterator.BasicDataModel { 37 38 static private String AUTOUPDATE_TYPES = "Services/AutoupdateType"; private String AUTOUPDATE_SERVICE_TYPE = "_update_center"; static private String AUTOUPDATE_SERVICE_TYPE_EXT = "settings"; static private String UC_LOCALIZING_BUNDLE = "SystemFileSystem.localizingBundle"; static private String AUTOUPDATE_MODULE = "org.netbeans.modules.autoupdate"; 44 private CreatedModifiedFiles cmf; 45 46 private String ucUrl; 48 private String ucDisplayName; 49 50 DataModel(WizardDescriptor wiz) { 51 super(wiz); 52 } 53 54 private CreatedModifiedFiles regenerate () { 55 if (cmf == null) { 56 cmf = new CreatedModifiedFiles (getProject ()); 57 } 58 URL url = DataModel.class.getResource ("update_center.xml"); assert url != null : "File 'update_center.xml must exist in package of " + getClass().getName() + "!"; 60 String serviceTypeName = getModuleInfo().getCodeNameBase ().replace ('.', '_') + AUTOUPDATE_SERVICE_TYPE; FileSystem layer = LayerUtils.layerForProject (getProject ()).layer (false); 62 63 String pathToAutoUpdateType = AUTOUPDATE_TYPES + '/' + serviceTypeName + '.' + AUTOUPDATE_SERVICE_TYPE_EXT; 64 int sequence = 0; 65 if (layer != null) { 66 FileObject f; 67 do { 68 f = layer.findResource (pathToAutoUpdateType); 69 if (f != null) { 70 pathToAutoUpdateType = AUTOUPDATE_TYPES + '/' + serviceTypeName + '_' + ++sequence + '.' + AUTOUPDATE_SERVICE_TYPE_EXT; 71 } 72 } while (f != null); 73 } 74 cmf.add (cmf.createLayerEntry (pathToAutoUpdateType, url, null, null, null)); 75 76 String url_key_base = getModuleInfo().getCodeNameBase ().replace ('.', '_') + AUTOUPDATE_SERVICE_TYPE; String url_key = sequence == 0 ? url_key_base : url_key_base + '_' + sequence; cmf.add (cmf.createLayerAttribute (pathToAutoUpdateType, "url_key", url_key)); cmf.add (cmf.createLayerAttribute (pathToAutoUpdateType, "enabled", Boolean.TRUE)); 81 ManifestManager mm = ManifestManager.getInstance(Util.getManifest(getModuleInfo().getManifestFile()), false); 83 String localizingBundle = mm.getLocalizingBundle (); 84 localizingBundle = localizingBundle.substring (0, localizingBundle.indexOf ('.')); 85 localizingBundle = localizingBundle.replace ('/', '.'); 86 cmf.add (cmf.createLayerAttribute (pathToAutoUpdateType, UC_LOCALIZING_BUNDLE, localizingBundle)); 87 88 cmf.add (cmf.bundleKeyDefaultBundle (pathToAutoUpdateType, ucDisplayName)); 89 cmf.add (cmf.bundleKeyDefaultBundle (url_key, ucUrl)); 90 91 cmf.add (cmf.addModuleDependency (AUTOUPDATE_MODULE, null, null, false)); 93 94 return cmf; 95 } 96 97 CreatedModifiedFiles refreshCreatedModifiedFiles() { 98 return regenerate (); 99 } 100 101 void setUpdateCenterURL (String url) { 102 this.ucUrl = url; 103 } 104 105 String getUpdateCenterURL () { 106 return ucUrl != null ? ucUrl : ""; } 108 109 void setUpdateCenterDisplayName (String name) { 110 this.ucDisplayName = name; 111 } 112 113 String getUpdateCenterDisplayName () { 114 return ucDisplayName != null ? ucDisplayName : ""; } 116 117 } 118 119 | Popular Tags |