|
From: <tre...@us...> - 2008-02-13 04:07:32
|
Revision: 744
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=744&view=rev
Author: trevorolio
Date: 2008-02-12 20:07:33 -0800 (Tue, 12 Feb 2008)
Log Message:
-----------
Now add and remove attachments without reloading the entire body.
Modified Paths:
--------------
maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
Modified: maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java
===================================================================
--- maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2008-02-13 04:06:40 UTC (rev 743)
+++ maven/trunk/ogoglio-body-editor-applet/src/main/java/com/ogoglio/bodyeditor/BodyEditorApplet.java 2008-02-13 04:07:33 UTC (rev 744)
@@ -299,17 +299,21 @@
if (user == null || bodyPanel == null || bodyPanel.renderable == null) {
return;
}
- user.getBodyConfiguration().setBodyDataID(bodyDataID);
- bodyPanel.bodyData = dataManager.getBodyData(bodyDataID);
- bodyPanel.renderable.initBody(bodyPanel.bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
-
- Attachment[] attachments = user.getBodyConfiguration().getAttachments();
+ BodyConfiguration bodyConfiguration = user.getBodyConfiguration();
+ bodyConfiguration.setBodyDataID(bodyDataID);
+ Attachment[] attachments = bodyConfiguration.getAttachments();
for (int i = 0; i < attachments.length; i++) {
- J3DAttachment j3dAttachment = new J3DAttachment(attachments[i], dataManager);
- bodyPanel.renderable.attach(j3dAttachment);
+ bodyConfiguration.removeAttachment(attachments[i].getAttachmentID());
}
+ String[] settings = bodyConfiguration.getSettingNames();
+ for (int i = 0; i < settings.length; i++) {
+ bodyConfiguration.removeSetting(settings[i]);
+ }
+
+ saveBodyConfiguration();
- saveBodyConfiguration();
+ bodyPanel.bodyData = dataManager.getBodyData(bodyDataID);
+ bodyPanel.renderable.initBody(bodyPanel.bodyData, dataManager.getBodyTexture(user.getUsername(), user.getBodyConfiguration().getBodyConfigurationID()));
}
public void saveBodyConfiguration() {
@@ -386,19 +390,35 @@
}
public void addAttachment(String ownerUsername, String templateID) {
+ System.out.println("Adding attachment with templateID: " + templateID);
try {
long id = Long.parseLong(templateID);
BodyConfigurationDocument doc = new BodyConfigurationDocument(user.getBodyConfiguration());
AttachmentDocument[] attachDocs = doc.getAttachmentDocuments();
for (int i = 0; i < attachDocs.length; i++) {
if (attachDocs[i].getTemplateID() == id) {
+ System.out.println("Already have that attachment: " + templateID);
return;
}
}
- System.out.println("Adding attachment: " + id);
+
doc.addAttachment(ownerUsername, id);
webClient.updateBodyConfiguration(doc);
- bodyPanel.fetchNewBodyConfiguration();
+ doc = webClient.getDefaultBodyConfiguration(user.getUsername());
+ System.out.println(doc);
+ attachDocs = doc.getAttachmentDocuments();
+ for (int i = 0; i < attachDocs.length; i++) {
+ if (attachDocs[i].getTemplateID() == id) {
+ TemplateDocument templateDoc = webClient.getTemplateDocument(attachDocs[i].getTemplateOwner(), attachDocs[i].getTemplateID());
+ Template template = new Template(templateDoc);
+ Attachment attachment = new Attachment(attachDocs[i].getAttachmentID(), template, user.getBodyConfiguration());
+ user.getBodyConfiguration().addAttachment(attachment);
+
+ J3DAttachment j3dAttachment = new J3DAttachment(attachment, dataManager);
+ bodyPanel.renderable.attach(j3dAttachment);
+ }
+ }
+
} catch (NumberFormatException e) {
System.err.println("Bad number: " + templateID);
} catch (IOException e) {
@@ -407,16 +427,18 @@
}
public void removeAttachment(String attachmentID) {
+ System.out.println("Removing attachment: " + attachmentID);
try {
long id = Long.parseLong(attachmentID);
BodyConfigurationDocument doc = new BodyConfigurationDocument(user.getBodyConfiguration());
AttachmentDocument[] attachDocs = doc.getAttachmentDocuments();
for (int i = 0; i < attachDocs.length; i++) {
if (attachDocs[i].getAttachmentID() == id) {
- System.out.println("Removing attachment " + id);
+ System.out.println("Found attachment to remove: " + id);
doc.removeAttachment(id);
webClient.updateBodyConfiguration(doc);
- bodyPanel.fetchNewBodyConfiguration();
+ bodyPanel.renderable.unattach(id);
+ user.getBodyConfiguration().removeAttachment(id);
return;
} else {
System.out.println("Not removing attachment " + attachDocs[i].getAttachmentID());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|