Lines 74-82
Link Here
|
74 |
import org.openide.util.lookup.Lookups; |
74 |
import org.openide.util.lookup.Lookups; |
75 |
import org.openide.windows.TopComponent; |
75 |
import org.openide.windows.TopComponent; |
76 |
import org.w3c.dom.Element; |
76 |
import org.w3c.dom.Element; |
77 |
import org.w3c.dom.Node; |
|
|
78 |
import org.w3c.dom.NodeList; |
77 |
import org.w3c.dom.NodeList; |
79 |
import org.w3c.dom.Text; |
|
|
80 |
import java.beans.PropertyChangeListener; |
78 |
import java.beans.PropertyChangeListener; |
81 |
import java.beans.PropertyChangeSupport; |
79 |
import java.beans.PropertyChangeSupport; |
82 |
import java.io.File; |
80 |
import java.io.File; |
Lines 98-103
Link Here
|
98 |
import org.openide.filesystems.FileChangeListener; |
96 |
import org.openide.filesystems.FileChangeListener; |
99 |
import org.openide.filesystems.FileUtil; |
97 |
import org.openide.filesystems.FileUtil; |
100 |
import org.openide.util.ImageUtilities; |
98 |
import org.openide.util.ImageUtilities; |
|
|
99 |
import org.openide.xml.XMLUtil; |
101 |
|
100 |
|
102 |
/** |
101 |
/** |
103 |
* Represents one Composite Application (JBI) Project. |
102 |
* Represents one Composite Application (JBI) Project. |
Lines 389-413
Link Here
|
389 |
* @return DOCUMENT ME! |
388 |
* @return DOCUMENT ME! |
390 |
*/ |
389 |
*/ |
391 |
public String getName() { |
390 |
public String getName() { |
392 |
return (String) ProjectManager.mutex().readAccess( |
391 |
return ProjectManager.mutex().readAccess(new Mutex.Action<String>() { |
393 |
new Mutex.Action() { |
392 |
public String run() { |
394 |
public Object run() { |
|
|
395 |
Element data = helper.getPrimaryConfigurationData(true); |
393 |
Element data = helper.getPrimaryConfigurationData(true); |
396 |
|
394 |
Element element = XMLUtil.findElement(data, "name", JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE); |
397 |
// XXX replace by XMLUtil when that has findElement, findText, etc. |
395 |
return (element != null) ? XMLUtil.findText(element) : "???"; // NOI18N |
398 |
NodeList nl = data.getElementsByTagNameNS( |
|
|
399 |
JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE, "name" // NOI18N |
400 |
); |
401 |
|
402 |
if (nl.getLength() == 1) { |
403 |
nl = nl.item(0).getChildNodes(); |
404 |
|
405 |
if ((nl.getLength() == 1) && (nl.item(0).getNodeType() == Node.TEXT_NODE)) { |
406 |
return ((Text) nl.item(0)).getNodeValue(); |
407 |
} |
408 |
} |
409 |
|
410 |
return "???"; // NOI18N |
411 |
} |
396 |
} |
412 |
} |
397 |
} |
413 |
); |
398 |
); |
Lines 415-439
Link Here
|
415 |
|
400 |
|
416 |
/** Store configured project name. */ |
401 |
/** Store configured project name. */ |
417 |
public void setName(final String name) { |
402 |
public void setName(final String name) { |
418 |
ProjectManager.mutex().writeAccess(new Mutex.Action() { |
403 |
ProjectManager.mutex().writeAccess(new Runnable() { |
419 |
public Object run() { |
404 |
public void run() { |
420 |
Element data = helper.getPrimaryConfigurationData(true); |
405 |
Element data = helper.getPrimaryConfigurationData(true); |
421 |
// XXX replace by XMLUtil when that has findElement, findText, etc. |
406 |
Element nameElement = XMLUtil.changeElementText(data, "name", JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE, name, true); |
422 |
NodeList nl = data.getElementsByTagNameNS(JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE, "name"); // NOI18N |
407 |
if (nameElement == null) { |
423 |
Element nameEl; |
408 |
XMLUtil.insertTextNode(data, "name", JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE, name, data.getChildNodes().item(0)); |
424 |
if (nl.getLength() == 1) { |
|
|
425 |
nameEl = (Element) nl.item(0); |
426 |
NodeList deadKids = nameEl.getChildNodes(); |
427 |
while (deadKids.getLength() > 0) { |
428 |
nameEl.removeChild(deadKids.item(0)); |
429 |
} |
430 |
} else { |
431 |
nameEl = data.getOwnerDocument().createElementNS(JbiProjectType.PROJECT_CONFIGURATION_NAMESPACE, "name"); // NOI18N |
432 |
data.insertBefore(nameEl, /* OK if null */data.getChildNodes().item(0)); |
433 |
} |
409 |
} |
434 |
nameEl.appendChild(data.getOwnerDocument().createTextNode(name)); |
|
|
435 |
helper.putPrimaryConfigurationData(data, true); |
410 |
helper.putPrimaryConfigurationData(data, true); |
436 |
return null; |
|
|
437 |
} |
411 |
} |
438 |
}); |
412 |
}); |
439 |
} |
413 |
} |