From: <se...@us...> - 2008-05-20 21:40:26
|
Revision: 155 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=155&view=rev Author: sem62 Date: 2008-05-20 14:40:05 -0700 (Tue, 20 May 2008) Log Message: ----------- Called synchronizing activities methods if needed. Global objectives not synchronizing properly. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-20 21:37:32 UTC (rev 154) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-20 21:40:05 UTC (rev 155) @@ -36,7 +36,7 @@ System.out.print("GetValue(" + parameter + ");\n"); Cmi cmi = getCmiModel(); - + if (parameter.toLowerCase().startsWith("cmi.")){ return cmi.getValue(parameter.substring(4)); } else { Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-20 21:37:32 UTC (rev 154) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-20 21:40:05 UTC (rev 155) @@ -14,8 +14,10 @@ import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.MapInfo; import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objectives; import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.Rte.Activity; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; +import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; @@ -86,6 +88,8 @@ // .getItemPath(item)); TreeDataModel.getInstance().treeNodesChanged(item); + + Activity.synchronizeActivitiesStructure(SummaryPageManager.getInstance().getManifest()); } public final void registerConfigDlg(PropertyDlg dlg){ Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-20 21:37:32 UTC (rev 154) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-20 21:40:05 UTC (rev 155) @@ -6,6 +6,7 @@ import edu.lnu.FireFly.FFManifest.Manifest; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.parser.TestDocException; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -14,137 +15,168 @@ public abstract class ResourcedItemModel extends ItemModel { - @Override - public final void addItem(TreeItem parent) { - - if (this.getClass() == OrganizationModel.class){ - System.out.println("Can't add Organization into course."); - return ; - } - - Item item = new Item(); - item.setParent(parent); + @Override + public final void addItem(TreeItem parent) { - item.identifier = this.getClass().getSimpleName() + "_Item_" - + UUID.randomUUID().toString(); - item.title = getDefaultTitle(); - item.parameters = "pageType=" + modelName; + if (this.getClass() == OrganizationModel.class) { + System.out.println("Can't add Organization into course."); + return; + } - item.identifierref = createNewResource(); + Item item = new Item(); + item.setParent(parent); - initializeDataForItem(item); + item.identifier = this.getClass().getSimpleName() + "_Item_" + + UUID.randomUUID().toString(); + item.title = getDefaultTitle(); + item.parameters = "pageType=" + modelName; - try { - parent.addChild(item); - TreeDataModel.getInstance().treeNodesInserted(item); - } catch (Exception e) { - e.printStackTrace(); - return; - } + item.identifierref = createNewResource(); - ConfigureItem(item); + initializeDataForItem(item); + + try { + parent.addChild(item); + TreeDataModel.getInstance().treeNodesInserted(item); + } catch (Exception e) { + e.printStackTrace(); + return; } - protected final String loadResource(String location, TreeItem anItem) { - String res = ""; + ConfigureItem(item); + } - if (location.equalsIgnoreCase("course")) { - res = WebEditorServiceClient.getInstance().getFileContent(getConfFileName(anItem), - location); - } else { - res = WebEditorServiceClient.getInstance().getFileContent(modelName + ".conf", - location); - } - return res; + protected final String loadResource(String location, TreeItem anItem) { + String res = ""; + + if (location.equalsIgnoreCase("course")) { + res = WebEditorServiceClient.getInstance().getFileContent( + getConfFileName(anItem), location); + } else { + res = WebEditorServiceClient.getInstance().getFileContent( + modelName + ".conf", location); } + return res; + } - @Override - public boolean isRemovable() { + @Override + public boolean isRemovable() { + return true; + } + + @Override + public void remove(TreeItem anItem) { + TreeDataModel.getInstance().treeNodesDeleted(anItem); + anItem.getParent().removeChild(anItem); + + deleteResource(anItem); + } + + private void deleteResource(TreeItem anItem) { + if (canDeleteResource(anItem)) { + Manifest manifest = SummaryPageManager.getInstance().getManifest(); + + String identifier = getIdentifierRef(anItem); + Resource resource = manifest.resources + .findResourceByIdentifier(identifier); + + WebEditorServiceClient.getInstance().deleteFile( + resource.getFullHref()); + WebEditorServiceClient.getInstance().deleteFile( + getConfFileName(anItem)); + + manifest.resources.deleteResource(identifier); + + SummaryPageManager.getInstance().updateSummaryPages(); + } + } + + private boolean isSubTreeUsingResource(TreeItem root, String identifierref, TreeItem exceptItem){ + if (root != exceptItem){ + if (getIdentifierRef(root).equals(identifierref)){ return true; + } } + + for (int i=0; i < root.getChildCount(); i++){ + TreeItem newRoot = root.getChild(i); + + if (isSubTreeUsingResource(newRoot, identifierref, exceptItem)){ + return true; + } + } + + return false; + } - @Override - public void remove(TreeItem anItem) { - TreeDataModel.getInstance().treeNodesDeleted(anItem); - anItem.getParent().removeChild(anItem); - - deleteResource(anItem); + private boolean canDeleteResource(TreeItem anItem) { + // TODO need check links to resource from other items in course tree. + + Manifest manifest = SummaryPageManager.getInstance().getManifest(); + + TreeItem root = null; + try{ + root = manifest.getRoot(); } + catch (TestDocException e) { + e.printStackTrace(); + } + + return !isSubTreeUsingResource(root, getIdentifier(anItem), anItem); + } - private void deleteResource(TreeItem anItem) { - if (canDeleteResource(anItem)){ - Manifest manifest = SummaryPageManager.getInstance().getManifest(); + public final boolean synchronizeItemWithResource(TreeItem anItem, + String location) { + String res = loadResource(location, anItem); - String identifier = getIdentifierRef(anItem); - Resource resource = manifest.resources.findResourceByIdentifier(identifier); - - WebEditorServiceClient.getInstance().deleteFile(resource.getFullHref()); - WebEditorServiceClient.getInstance().deleteFile(getConfFileName(anItem)); - - manifest.resources.deleteResource(identifier); + ItemData itemData = getItemData(anItem); - SummaryPageManager.getInstance().updateSummaryPages(); - } + if (itemData == null) { + itemData = createItemDataInstance(); + setItemData(anItem, itemData); } - private boolean canDeleteResource(TreeItem anItem) { - // TODO need check links to resource from other items in course tree. - - return true; + if (res == null || res.trim().equals("")) { + return false; } - public final boolean synchronizeItemWithResource(TreeItem anItem, String location) - { - String res = loadResource(location, anItem); + itemData.unmarshal(new StringReader(res), anItem); - ItemData itemData = getItemData(anItem); + return true; + } - if (itemData == null) { - itemData = createItemDataInstance(); - setItemData(anItem, itemData); - } + protected String getConfFileName(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(getIdentifierRef(anItem)); - if (res == null || res.trim().equals("")) { - return false; - } + return resource.identifier + ".conf"; + } - itemData.unmarshal(new StringReader(res), anItem); + protected final void initializeDataForItem(Item anItem) { + ItemData itemData = createItemDataInstance(); - return true; - } + String res = loadResource("template", anItem); - protected String getConfFileName(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(getIdentifierRef(anItem)); - - return resource.identifier + ".conf"; - } + itemData.unmarshal(new StringReader(res), anItem); - protected final void initializeDataForItem(Item anItem){ - ItemData itemData = createItemDataInstance(); - - String res = loadResource("template", anItem); - - itemData.unmarshal(new StringReader(res), anItem); - - setItemData(anItem, itemData); - } + setItemData(anItem, itemData); + } - protected abstract void updateResourceFile(TreeItem anItem); + protected abstract void updateResourceFile(TreeItem anItem); - public boolean updateItemResource(TreeItem anItem, - boolean updateSummaryPages) { + public boolean updateItemResource(TreeItem anItem, + boolean updateSummaryPages) { - updateResourceFile(anItem); - ItemData itemData = getItemData(anItem); + updateResourceFile(anItem); + ItemData itemData = getItemData(anItem); - WebEditorServiceClient.getInstance().setFileContent( - getConfFileName(anItem), itemData.marshal(anItem)); + WebEditorServiceClient.getInstance().setFileContent( + getConfFileName(anItem), itemData.marshal(anItem)); - if (updateSummaryPages) { - SummaryPageManager.getInstance().updateSummaryPages(); - } + if (updateSummaryPages) { + SummaryPageManager.getInstance().updateSummaryPages(); + } - return true; - } + return true; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-20 21:37:32 UTC (rev 154) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-20 21:40:05 UTC (rev 155) @@ -86,7 +86,7 @@ ItemModels.synchronizeAllItemDatas(manifest.getRoot()); SummaryPageManager.getInstance().setManifest(manifest); - Activity.fullUpdate(manifest); + Activity.fullsynchronizeActivitiesStructure(manifest); } public Manifest getManifest() { @@ -152,7 +152,7 @@ model.synchronizeItemWithResource(root, "template"); SummaryPageManager.getInstance().updateSummaryPages(); - Activity.fullUpdate(manifest); + Activity.fullsynchronizeActivitiesStructure(manifest); } catch (Exception e) { e.printStackTrace(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |