You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(128) |
Jun
(97) |
Jul
(13) |
Aug
(40) |
Sep
(50) |
Oct
(27) |
Nov
(7) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(18) |
Feb
(47) |
Mar
(7) |
Apr
|
May
|
Jun
|
Jul
(32) |
Aug
|
Sep
(14) |
Oct
(22) |
Nov
|
Dec
|
From: <se...@us...> - 2008-05-22 20:21:09
|
Revision: 156 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=156&view=rev Author: sem62 Date: 2008-05-22 13:21:05 -0700 (Thu, 22 May 2008) Log Message: ----------- Added AnswerStatus class and subclasses. Must be use for determining for score calculation. By default - without server (Internally. Beside on ItemData). Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -8,152 +8,160 @@ import edu.lnu.FireFly.WebEditor.ItemModels.ItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class ChapterModel extends ResourcedItemModel { - public ChapterModel() { - super(); - modelName = "ChapterModel"; - isContainerItem = true; - - registerConfigDlg(new ChapterPropertiestsDlg()); - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return null; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + public ChapterModel() { + super(); + modelName = "ChapterModel"; + isContainerItem = true; - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + registerConfigDlg(new ChapterPropertiestsDlg()); + } - @Override - protected ItemData createItemDataInstance() { - return new ChapterItemData(); - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - @Override - protected String getConfFileName(TreeItem anItem) { - return getIdentifier(anItem); - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - private ChapterItemData getData(TreeItem anItem) { - return (ChapterItemData) getItemData(anItem); - } + @Override + protected ItemData createItemDataInstance() { + return new ChapterItemData(); + } - @Override - protected String getDefaultTitle() { - return "New chapter"; - } + @Override + protected String getConfFileName(TreeItem anItem) { + return getIdentifier(anItem); + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return false; - } + private ChapterItemData getData(TreeItem anItem) { + return (ChapterItemData) getItemData(anItem); + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + protected String getDefaultTitle() { + return "New chapter"; + } - public boolean getShowSummaryPage(TreeItem anItem) { - ChapterItemData itemData = getData(anItem); + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return false; + } - if (itemData == null) { - System.out - .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - return false; - } + public boolean getShowSummaryPage(TreeItem anItem) { + ChapterItemData itemData = getData(anItem); - return itemData.isShowSummaryPage(); - } + if (itemData == null) { + System.out + .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); - @Override - public boolean getShowSummaryPageMenuVisible() { - return true; + return false; } - @Override - public boolean isRemovable() { - return true; + return itemData.isShowSummaryPage(); + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return true; + } + + @Override + public boolean isRemovable() { + return true; + } + + @Override + public void remove(TreeItem aChapter) { + if (!canDeleteChapter(aChapter)) { + System.out + .print("This chapter contains items. Please, remove all childs and try again.\n"); + return; } - @Override - public void remove(TreeItem aChapter) { - if (!canDeleteChapter(aChapter)) { - System.out - .print("This chapter contains items. Please, remove all childs and try again.\n"); - return; - } - - for (int i=0; i < aChapter.getChildCount(); i++){ - TreeItem item = aChapter.getChild(i); - ItemModel model = ItemModels.getModelFromItem(item); - - model.remove(item); - } + for (int i = 0; i < aChapter.getChildCount(); i++) { + TreeItem item = aChapter.getChild(i); + ItemModel model = ItemModels.getModelFromItem(item); - TreeDataModel.getInstance().treeNodesDeleted(aChapter); - aChapter.getParent().removeChild(aChapter); - - WebEditorServiceClient.getInstance().deleteFile(getConfFileName(aChapter)); - SummaryPageManager.getInstance().updateSummaryPages(); + model.remove(item); } - /** - * Determine if this chapter can deleted.<br> - * Chapter can be deleted, if it have no childs or it containe only summary page. - * - * @param aChapter - * @return true, if this chapter can be deleted. - */ - private boolean canDeleteChapter(TreeItem aChapter) { - boolean result = aChapter.getChildCount() == 0; - - if (!result){ - if (aChapter.getChildCount() == 1){ - TreeItem child = aChapter.getChild(0); - ItemModel model = ItemModels.getModelFromItem(child); - - if (model.getClass() == SummaryPageModel.class){ - return true; - } - } + TreeDataModel.getInstance().treeNodesDeleted(aChapter); + aChapter.getParent().removeChild(aChapter); + + WebEditorServiceClient.getInstance().deleteFile( + getConfFileName(aChapter)); + SummaryPageManager.getInstance().updateSummaryPages(); + } + + /** + * Determine if this chapter can deleted.<br> + * Chapter can be deleted, if it have no childs or it containe only summary + * page. + * + * @param aChapter + * @return true, if this chapter can be deleted. + */ + private boolean canDeleteChapter(TreeItem aChapter) { + boolean result = aChapter.getChildCount() == 0; + + if (!result) { + if (aChapter.getChildCount() == 1) { + TreeItem child = aChapter.getChild(0); + ItemModel model = ItemModels.getModelFromItem(child); + + if (model.getClass() == SummaryPageModel.class) { + return true; } - - return result; + } } - public void setShowSummaryPage(TreeItem anItem, boolean state) { - ChapterItemData itemData = getData(anItem); + return result; + } - if (itemData == null) { - ItemData data = new ChapterItemData(); - setItemData(anItem, data); - itemData = (ChapterItemData) getItemData(anItem); - } + public void setShowSummaryPage(TreeItem anItem, boolean state) { + ChapterItemData itemData = getData(anItem); - if (itemData.isShowSummaryPage() != state) { - itemData.setShowSummaryPage(state); - updateItemResource(anItem, true); - } + if (itemData == null) { + ItemData data = new ChapterItemData(); + setItemData(anItem, data); + itemData = (ChapterItemData) getItemData(anItem); } - @Override - protected void updateResourceFile(TreeItem anItem) { - // do nothing. - // Chapter currently haven't resource file + if (itemData.isShowSummaryPage() != state) { + itemData.setShowSummaryPage(state); + updateItemResource(anItem, true); } + } - @Override - public boolean modelHasResource() { - return false; - } + @Override + protected void updateResourceFile(TreeItem anItem) { + // do nothing. + // Chapter currently haven't resource file + } + + @Override + public boolean modelHasResource() { + return false; + } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -9,84 +9,93 @@ import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.ScoredUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class CompileQModel extends ResourcedItemModel { - - @Override - protected String getDefaultTitle() { - return "New compile question"; - } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return true; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new ScoredUserAnswerStatus(anItem); + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + protected String getDefaultTitle() { + return "New compile question"; + } - public CompileQModel() { - modelName = "CompileQModel"; - registerConfigDlg(new CompileQPropertiestsDlg()); - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return true; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + public CompileQModel() { + modelName = "CompileQModel"; + registerConfigDlg(new CompileQPropertiestsDlg()); + } - public CompileQData getData(TreeItem item) { - return ((CompileQData) getItemData(item)); - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - @Override - public boolean isRemovable() { - return true; - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - protected ItemData createItemDataInstance() { - return new CompileQData(); - } + public CompileQData getData(TreeItem item) { + return ((CompileQData) getItemData(item)); + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + @Override + public boolean isRemovable() { + return true; + } - Template template = new Template(resource.getFullHref(), this); + protected ItemData createItemDataInstance() { + return new CompileQData(); + } - CompileQData itemData = getData(anItem); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - template.setProperty("Caption", itemData.getCaption()); + Template template = new Template(resource.getFullHref(), this); - Iterator<CompileQPart> iter = itemData.getParts().questionParts.iterator(); - String answers = "\r\nsetProgrammingLanguage(\"" - + itemData.getLanguge() + "\");\r\n"; + CompileQData itemData = getData(anItem); - while (iter.hasNext()) { - CompileQPart part = iter.next(); - answers += "addPart(\"" + part.getAnswerText().replace("\"", "\\\"") + "\", " - + part.getPartAttributes().isAnswer() + ", " - + part.getPartAttributes().isReadOnly() + ", " - + part.getPartAttributes().isVisible() + ");" + "\r\n"; - } + template.setProperty("Caption", itemData.getCaption()); - template.setProperty("parts", answers); - template.updateResource(); + Iterator<CompileQPart> iter = itemData.getParts().questionParts + .iterator(); + String answers = "\r\nsetProgrammingLanguage(\"" + + itemData.getLanguge() + "\");\r\n"; + + while (iter.hasNext()) { + CompileQPart part = iter.next(); + answers += "addPart(\"" + + part.getAnswerText().replace("\"", "\\\"") + "\", " + + part.getPartAttributes().isAnswer() + ", " + + part.getPartAttributes().isReadOnly() + ", " + + part.getPartAttributes().isVisible() + ");" + "\r\n"; } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + template.setProperty("parts", answers); + template.updateResource(); + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } } \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -15,6 +15,8 @@ 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.Rte.Cmi; +import edu.lnu.FireFly.Rte.CmiManager; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -23,249 +25,268 @@ import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public abstract class ItemModel { - protected static HashMap<TreeItem, ItemData> questionsData = new HashMap<TreeItem, ItemData>(); + protected static HashMap<TreeItem, ItemData> questionsData = new HashMap<TreeItem, ItemData>(); - protected String modelName = "Abstract model"; + protected String modelName = "Abstract model"; - protected abstract String getDefaultTitle(); - - public void setItemData(TreeItem anItem, ItemData data) { - questionsData.put(anItem, data); - } + protected abstract String getDefaultTitle(); - protected boolean isContainerItem = false; + public void setItemData(TreeItem anItem, ItemData data) { + questionsData.put(anItem, data); + } - private PropertyDlg propertyDlg = null; + protected boolean isContainerItem = false; - public final boolean getShowOnSummaryPage(TreeItem anItem) { - if (this.getClass() == SummaryPageModel.class){ - return false; - } - - ItemData itemData = getItemData(anItem); + private PropertyDlg propertyDlg = null; - if (itemData == null) { - System.out - .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + public final boolean getShowOnSummaryPage(TreeItem anItem) { + if (this.getClass() == SummaryPageModel.class) { + return false; + } - return false; - } + ItemData itemData = getItemData(anItem); - return itemData.getShowOnSummaryPage(); + if (itemData == null) { + System.out + .println("Warning: ItemData is null at ItemModel.getShowOnSummaryPage()"); + + return false; } - protected abstract void initializeDataForItem(Item anItem); - - public final void setShowOnSummaryPage(TreeItem anItem, boolean aValue) { - ItemData itemData = getItemData(anItem); - - if (itemData == null){ - System.out.println("Warning: itemData is null."); - return; - } - - if (itemData.getShowOnSummaryPage() != aValue) { - itemData.setShowOnSummaryPage(aValue); + return itemData.getShowOnSummaryPage(); + } - updateItemResource(anItem, true); - } + protected abstract void initializeDataForItem(Item anItem); + + public final void setShowOnSummaryPage(TreeItem anItem, boolean aValue) { + ItemData itemData = getItemData(anItem); + + if (itemData == null) { + System.out.println("Warning: itemData is null."); + return; } - public abstract void addItem(TreeItem parent); + if (itemData.getShowOnSummaryPage() != aValue) { + itemData.setShowOnSummaryPage(aValue); - public abstract boolean canAddToItem(TreeItem parent); + updateItemResource(anItem, true); + } + } - public abstract boolean canConvertItem(TreeItem parent); - - public final void ConfigureItem(TreeItem item) { - if (propertyDlg != null){ - propertyDlg.showDialog(item); - } + public abstract void addItem(TreeItem parent); -// In SimpleQModel -// WebEditor.tree.setSelectionPath(null); -// WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() -// .getItemPath(item)); + public abstract boolean canAddToItem(TreeItem parent); - TreeDataModel.getInstance().treeNodesChanged(item); - - Activity.synchronizeActivitiesStructure(SummaryPageManager.getInstance().getManifest()); - } + public abstract boolean canConvertItem(TreeItem parent); - public final void registerConfigDlg(PropertyDlg dlg){ - this.propertyDlg = dlg; + public final void ConfigureItem(TreeItem item) { + if (propertyDlg != null) { + propertyDlg.showDialog(item); } - protected String createNewResource() { - if (modelHasResource()){ - - Resource resource = new Resource(); - resource.identifier = this.getClass().getSimpleName() + "_res_" - + UUID.randomUUID().toString(); - resource.scormType = "sco"; - resource.type = "webcontent"; + // In SimpleQModel + // WebEditor.tree.setSelectionPath(null); + // WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() + // .getItemPath(item)); - String fName = resource.identifier + ".html"; - resource.setHref(fName); + TreeDataModel.getInstance().treeNodesChanged(item); - WebEditor.instance.getManifest().resources.resources.add(resource); + Activity.synchronizeActivitiesStructure(SummaryPageManager + .getInstance().getManifest()); + } - return resource.identifier; - } - - return null; - } + public final void registerConfigDlg(PropertyDlg dlg) { + this.propertyDlg = dlg; + } - public boolean modelHasResource() { - return true; - } + protected String createNewResource() { + if (modelHasResource()) { - public ItemData getItemData(TreeItem anItem) { - if (questionsData.containsKey(anItem)) { - return questionsData.get(anItem); - } + Resource resource = new Resource(); + resource.identifier = this.getClass().getSimpleName() + "_res_" + + UUID.randomUUID().toString(); + resource.scormType = "sco"; + resource.type = "webcontent"; - return null; + String fName = resource.identifier + ".html"; + resource.setHref(fName); + + WebEditor.instance.getManifest().resources.resources.add(resource); + + return resource.identifier; } - public final String getModelName() { - return modelName; + return null; + } + + public boolean modelHasResource() { + return true; + } + + public ItemData getItemData(TreeItem anItem) { + if (questionsData.containsKey(anItem)) { + return questionsData.get(anItem); } - public final String getResource(URL url) { - try { - InputStream stream = url.openStream(); + return null; + } - InputStreamReader reader = new InputStreamReader(stream); + public final String getModelName() { + return modelName; + } - BufferedReader br = new BufferedReader(reader); + public final String getResource(URL url) { + try { + InputStream stream = url.openStream(); - String line = ""; - String result = ""; - while ((line = br.readLine()) != null) { - result += line; - } + InputStreamReader reader = new InputStreamReader(stream); - stream.close(); + BufferedReader br = new BufferedReader(reader); - return result; - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } + String line = ""; + String result = ""; + while ((line = br.readLine()) != null) { + result += line; + } - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } + stream.close(); - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=" + modelName)) { - return true; - } + return result; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } - return false; + public boolean isApplaingForItem(TreeItem treeItem) { + if (treeItem.getClass() != Item.class) { + return false; } - - public final boolean isContainer() { - return isContainerItem; + + Item item = (Item) treeItem; + if (item.parameters != null + && item.parameters.contains("pageType=" + modelName)) { + return true; } - public abstract boolean isRemovable(); + return false; + } - public abstract void remove(TreeItem anItem); + public final boolean isContainer() { + return isContainerItem; + } - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - TreeDataModel.getInstance().treeNodesChanged(item); - } + public abstract boolean isRemovable(); - public abstract boolean synchronizeItemWithResource(TreeItem anItem, String location); - - public abstract boolean updateItemResource(TreeItem item, boolean updateSummaryPages); + public abstract void remove(TreeItem anItem); - public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem); + public void rename(TreeItem item, String newTitle) { + ((Item) item).title = newTitle; + TreeDataModel.getInstance().treeNodesChanged(item); + } - public abstract boolean getShowOnSummaryPageMenuVisible(); + public abstract boolean synchronizeItemWithResource(TreeItem anItem, + String location); - public abstract boolean getShowSummaryPageMenuVisible(); + public abstract boolean updateItemResource(TreeItem item, + boolean updateSummaryPages); - public final String getIdentifierRef(TreeItem anItem) { - if (anItem.getClass() == Item.class){ - return ((Item)anItem).identifierref; - } - - return null; - } + public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem); - public final String getIdentifier(TreeItem anItem) { - if (anItem.getClass() == Item.class){ - return ((Item)anItem).identifier; - } + public abstract boolean getShowOnSummaryPageMenuVisible(); - if (anItem.getClass() == Organization.class){ - return ((Organization)anItem).identifier; - } - - return null; + public abstract boolean getShowSummaryPageMenuVisible(); + + public final String getIdentifierRef(TreeItem anItem) { + if (anItem.getClass() == Item.class) { + return ((Item) anItem).identifierref; } - public Objectives getObjectivesInstance(Item summaryPage) { - ItemModel model = ItemModels.getModelFromItem(summaryPage); - Sequencing sequencing = model.getSequencingInstance(summaryPage); + return null; + } - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } + public final String getIdentifier(TreeItem anItem) { + if (anItem.getClass() == Item.class) { + return ((Item) anItem).identifier; + } - return sequencing.objectives; + if (anItem.getClass() == Organization.class) { + return ((Organization) anItem).identifier; } - public void updateItemObjectives(TreeItem anItem) { - Sequencing sequencing = getSequencingInstance(anItem); + return null; + } - if (sequencing.objectives == null) { - sequencing.objectives = ManifestFactory.createObjectives(); - } + public Objectives getObjectivesInstance(Item summaryPage) { + ItemModel model = ItemModels.getModelFromItem(summaryPage); + Sequencing sequencing = model.getSequencingInstance(summaryPage); - sequencing.objectives.primaryObjective = ManifestFactory - .createObjective(); - sequencing.objectives.primaryObjective.objectiveID = getIdentifier(anItem); - sequencing.objectives.primaryObjective.satisfiedByMeasure = true; + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); + } - MapInfo mapInfo = ManifestFactory.createMapInfo(); - mapInfo.writeNormalizedMeasure = true; - mapInfo.writeSatisfiedStatus = true; - mapInfo.targetObjectiveID = sequencing.objectives.primaryObjective.objectiveID; + return sequencing.objectives; + } - sequencing.objectives.primaryObjective.mapInfo = ManifestFactory - .createMapInfos(); - sequencing.objectives.primaryObjective.mapInfo.add(mapInfo); + public void updateItemObjectives(TreeItem anItem) { + Sequencing sequencing = getSequencingInstance(anItem); + + if (sequencing.objectives == null) { + sequencing.objectives = ManifestFactory.createObjectives(); } - private Sequencing getSequencingInstance(TreeItem anItem) { - Sequencing sequencing = null; + sequencing.objectives.primaryObjective = ManifestFactory + .createObjective(); + sequencing.objectives.primaryObjective.objectiveID = getIdentifier(anItem); + sequencing.objectives.primaryObjective.satisfiedByMeasure = true; - if (anItem.getClass() == Organization.class) { - if (((Organization) anItem).sequencing == null) { - ((Organization) anItem).sequencing = ManifestFactory - .createSequencing(); - } + MapInfo mapInfo = ManifestFactory.createMapInfo(); + mapInfo.writeNormalizedMeasure = true; + mapInfo.writeSatisfiedStatus = true; + mapInfo.targetObjectiveID = sequencing.objectives.primaryObjective.objectiveID; - sequencing = ((Organization) anItem).sequencing; - } + sequencing.objectives.primaryObjective.mapInfo = ManifestFactory + .createMapInfos(); + sequencing.objectives.primaryObjective.mapInfo.add(mapInfo); + } - if (anItem.getClass() == Item.class) { - if (((Item) anItem).sequencing == null) { - ((Item) anItem).sequencing = ManifestFactory.createSequencing(); - } + private Sequencing getSequencingInstance(TreeItem anItem) { + Sequencing sequencing = null; - sequencing = ((Item) anItem).sequencing; - } - return sequencing; + if (anItem.getClass() == Organization.class) { + if (((Organization) anItem).sequencing == null) { + ((Organization) anItem).sequencing = ManifestFactory + .createSequencing(); + } + + sequencing = ((Organization) anItem).sequencing; } - protected abstract ItemData createItemDataInstance(); + if (anItem.getClass() == Item.class) { + if (((Item) anItem).sequencing == null) { + ((Item) anItem).sequencing = ManifestFactory.createSequencing(); + } + + sequencing = ((Item) anItem).sequencing; + } + return sequencing; + } + + protected abstract ItemData createItemDataInstance(); + + public void handleUserAnswer(String answer, TreeItem anItem){ + Activity activity = Activity.findActivityByIdentifier(anItem.getIdentifier()); + + Cmi cmi =CmiManager.getInstance().getModelForActivity(activity); + if (cmi == null){ + throw new NullPointerException("Cmi model for activity is null at ItemModel.handleUserAnswer()"); + } + + UserAnswerStatus userAnswer = createUserAnswerInstance(anItem); + userAnswer.setRawAnswer(answer); + + userAnswer.updateRteFields(cmi); + } + + protected abstract UserAnswerStatus createUserAnswerInstance(TreeItem anItem); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -6,68 +6,75 @@ import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.LecturePropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; +import edu.lnu.FireFly.WebEditor.ItemModels.LectureUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class LectureModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New lecture"; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new LectureUserAnswerStatus(anItem); + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + protected String getDefaultTitle() { + return "New lecture"; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return true; - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return true; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return true; + } - public LectureModel() { - modelName = "LectureModel"; - registerConfigDlg(new LecturePropertiestsDlg()); - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // TODO Auto-generated method stub - return true; - } + public LectureModel() { + modelName = "LectureModel"; + registerConfigDlg(new LecturePropertiestsDlg()); + } - @Override - public boolean canConvertItem(TreeItem parent) { - // TODO Auto-generated method stub - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } - private LectureData getData(TreeItem item) { - return (LectureData) getItemData(item); - } + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + private LectureData getData(TreeItem item) { + return (LectureData) getItemData(item); + } - Template template = new Template(resource.getFullHref(), this); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - LectureData itemData = getData(anItem); + Template template = new Template(resource.getFullHref(), this); - template.setProperty("caption", itemData.getCaption()); - template.setProperty("content", itemData.getContent()); + LectureData itemData = getData(anItem); - template.updateResource(); - } + template.setProperty("caption", itemData.getCaption()); + template.setProperty("content", itemData.getContent()); - @Override - protected ItemData createItemDataInstance() { - return new LectureData(); - } + template.updateResource(); + } + + @Override + protected ItemData createItemDataInstance() { + return new LectureData(); + } } \ No newline at end of file Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/LectureUserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,24 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class LectureUserAnswerStatus extends UserAnswerStatus { + + public LectureUserAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi) { + // TODO Auto-generated method stub + + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } + +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ScoredUserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,50 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class ScoredUserAnswerStatus extends UserAnswerStatus{ + public ScoredUserAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi) { + // TODO Auto-generated method stub + + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } + + private int minScore = 0; + private int maxScore = 0; + private int rawScore = 0; + + public int getMinScore() { + return minScore; + } + + public void setMinScore(int minScore) { + this.minScore = minScore; + } + + public int getMaxScore() { + return maxScore; + } + + public void setMaxScore(int maxScore) { + this.maxScore = maxScore; + } + + public int getRawScore() { + return rawScore; + } + + public void setRawScore(int rawScore) { + this.rawScore = rawScore; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -9,10 +9,17 @@ import edu.lnu.FireFly.WebEditor.GUI.Dialogs.SimpleQuestionPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.ScoredUserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; public class SimpleQuestionModel extends ResourcedItemModel { @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new ScoredUserAnswerStatus(anItem); + } + + @Override protected String getDefaultTitle() { return "New simple question"; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -10,115 +10,121 @@ import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; +import edu.lnu.FireFly.WebEditor.ItemModels.UserAnswerStatus; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; public class SummaryPageModel extends ResourcedItemModel { - @Override - protected String getDefaultTitle() { - return "New summary page"; - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return null; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return false; - } + @Override + protected String getDefaultTitle() { + return "New summary page"; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return false; + } - public SummaryPageModel() { - modelName = "SummaryPageModel"; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return false; + } - private String getSummaryPageContent(TreeItem parent) { - int childsCount = parent.getChildCount(); + public SummaryPageModel() { + modelName = "SummaryPageModel"; + } - ItemModel model = ItemModels.getModelFromItem(parent); - String res = "openBlock(\"" + parent.getTitle() + "\", \"" - + model.getModelName() + "\", \"" + model.getIdentifier(parent) - + "\");\n"; + private String getSummaryPageContent(TreeItem parent) { + int childsCount = parent.getChildCount(); - for (int i = 0; i < childsCount; i++) { - TreeItem item = parent.getChild(i); - model = ItemModels.getModelFromItem(item); + ItemModel model = ItemModels.getModelFromItem(parent); + String res = "openBlock(\"" + parent.getTitle() + "\", \"" + + model.getModelName() + "\", \"" + model.getIdentifier(parent) + + "\");\n"; - if (model.getShowOnSummaryPage(item)) { - res += getSummaryPageContentItem(item); - } - } + for (int i = 0; i < childsCount; i++) { + TreeItem item = parent.getChild(i); + model = ItemModels.getModelFromItem(item); - res += "closeBlock(\"" + parent.getTitle() + "\");\n"; - return res; + if (model.getShowOnSummaryPage(item)) { + res += getSummaryPageContentItem(item); + } } - private String getSummaryPageContentItem(TreeItem anItem) { - ItemModel model = ItemModels.getModelFromItem(anItem); + res += "closeBlock(\"" + parent.getTitle() + "\");\n"; + return res; + } - if (!model.getShowOnSummaryPage(anItem)) { - return ""; - } + private String getSummaryPageContentItem(TreeItem anItem) { + ItemModel model = ItemModels.getModelFromItem(anItem); - if (model.getClass() == SimpleQuestionModel.class - || model.getClass() == LectureModel.class) { + if (!model.getShowOnSummaryPage(anItem)) { + return ""; + } - return "add(\"" + anItem.getTitle() + "\", \"" - + model.getModelName() + "\", \"" - + ((Item) anItem).identifier + "\");\n"; - } + if (model.getClass() == SimpleQuestionModel.class + || model.getClass() == LectureModel.class) { - if (model.getClass() == ChapterModel.class - || model.getClass() == OrganizationModel.class) { + return "add(\"" + anItem.getTitle() + "\", \"" + + model.getModelName() + "\", \"" + + ((Item) anItem).identifier + "\");\n"; + } - return getSummaryPageContent(anItem); - } + if (model.getClass() == ChapterModel.class + || model.getClass() == OrganizationModel.class) { - return null; + return getSummaryPageContent(anItem); } - protected SummaryPageData getData(TreeItem anItem) { - return (SummaryPageData) getItemData(anItem); - } + return null; + } - @Override - public boolean canAddToItem(TreeItem parent) { - // It can be added to any item because it must generated automatically. - return false; - } + protected SummaryPageData getData(TreeItem anItem) { + return (SummaryPageData) getItemData(anItem); + } - @Override - public boolean canConvertItem(TreeItem parent) { - // It can't be converted from any other model - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + // It can be added to any item because it must generated automatically. + return false; + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + public boolean canConvertItem(TreeItem parent) { + // It can't be converted from any other model + return false; + } - @Override - protected ItemData createItemDataInstance() { - return new SummaryPageData(); - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); + @Override + protected ItemData createItemDataInstance() { + return new SummaryPageData(); + } - Template template = new Template(resource.getFullHref(), this); + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); - String content = "<script type=\"text/javascript\">" - + getSummaryPageContent(anItem.getParent()) + "</script>"; + Template template = new Template(resource.getFullHref(), this); - template.setProperty("content", content); - template.setProperty("title", anItem.getTitle()); + String content = "<script type=\"text/javascript\">" + + getSummaryPageContent(anItem.getParent()) + "</script>"; - template.updateResource(); - } + template.setProperty("content", content); + template.setProperty("title", anItem.getTitle()); + template.updateResource(); + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-20 21:40:05 UTC (rev 155) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-22 20:21:05 UTC (rev 156) @@ -6,71 +6,79 @@ public class UnknownItemModel extends ItemModel { - @Override - public void addItem(TreeItem parent) { - System.out.println("Can't doing this operation with unknown item model"); - } + @Override + protected UserAnswerStatus createUserAnswerInstance(TreeItem anItem) { + return new UnknownModelAnswerStatus(anItem); + } - @Override - public boolean canAddToItem(TreeItem parent) { - return false; - } + @Override + public void addItem(TreeItem parent) { + System.out + .println("Can't doing this operation with unknown item model"); + } - @Override - public boolean canConvertItem(TreeItem parent) { - return false; - } + @Override + public boolean canAddToItem(TreeItem parent) { + return false; + } - @Override - protected ItemData createItemDataInstance() { - System.out.println("Can't doing this operation with unknown item model"); - return null; - } + @Override + public boolean canConvertItem(TreeItem parent) { + return false; + } - @Override - protected String getDefaultTitle() { - return "Unknown"; - } + @Override + protected ItemData createItemDataInstance() { + System.out + .println("Can't doing this operation with unknown item model"); + return null; + } - @Override - public boolean getLimitConditionsMenuVisible(TreeItem anItem) { - return anItem.getChildCount() == 0; - } + @Override + protected String getDefaultTitle() { + return "Unknown"; + } - @Override - public boolean getShowOnSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return anItem.getChildCount() == 0; + } - @Override - public boolean getShowSummaryPageMenuVisible() { - return false; - } + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return false; + } - @Override - protected void initializeDataForItem(Item anItem) { - System.out.println("Can't doing this operation with unknown item model"); - } + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } - @Override - public boolean isRemovable() { - return true; - } + @Override + protected void initializeDataForItem(Item anItem) { + System.out + .println("Can't doing this operation with unknown item model"); + } - @Override - public void remove(TreeItem anItem) { - anItem.getParent().removeChild(anItem); - TreeDataModel.getInstance().treeNodesDeleted(anItem); - } + @Override + public boolean isRemovable() { + return true; + } - @Override - public boolean synchronizeItemWithResource(TreeItem anItem, String location) { - return false; - } + @Override + public void remove(TreeItem anItem) { + anItem.getParent().removeChild(anItem); + TreeDataModel.getInstance().treeNodesDeleted(anItem); + } - @Override - public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) { - return false; - } + @Override + public boolean synchronizeItemWithResource(TreeItem anItem, String location) { + return false; + } + @Override + public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) { + return false; + } + } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownModelAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,24 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public class UnknownModelAnswerStatus extends UserAnswerStatus { + + public UnknownModelAnswerStatus(TreeItem anItem) { + super(anItem); + } + + @Override + public void updateRteFields(Cmi cmi){ + int interaction = 0; + String cmiElement = "interactions." + interaction + ".learner_response"; + cmi.setValue(cmiElement, getRawAnswer()); + } + + @Override + protected void updateValues() { + // TODO Auto-generated method stub + + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UserAnswerStatus.java 2008-05-22 20:21:05 UTC (rev 156) @@ -0,0 +1,27 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.Rte.Cmi; + +public abstract class UserAnswerStatus { + private String rawAnswer = ""; + protected TreeItem item = null; + + public UserAnswerStatus(TreeItem anItem){ + item = anItem; + } + + public String getRawAnswer() { + return rawAnswer; + } + + public void setRawAnswer(String rawAnswer) { + this.rawAnswer = rawAnswer; + + updateValues(); + } + + protected abstract void updateValues(); + + public abstract void updateRteFields(Cmi cmi); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <se...@us...> - 2008-05-20 21:37:49
|
Revision: 154 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=154&view=rev Author: sem62 Date: 2008-05-20 14:37:32 -0700 (Tue, 20 May 2008) Log Message: ----------- Added synchronizing with course tree methods into Activity. Modified Paths: -------------- RTE/src/edu/lnu/FireFly/Rte/Activity.java Modified: RTE/src/edu/lnu/FireFly/Rte/Activity.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Activity.java 2008-05-20 21:04:34 UTC (rev 153) +++ RTE/src/edu/lnu/FireFly/Rte/Activity.java 2008-05-20 21:37:32 UTC (rev 154) @@ -2,11 +2,14 @@ import java.util.ArrayList; -import edu.lnu.FireFly.FFManifest.*; -import edu.lnu.FireFly.FFManifest.item.*; -import edu.lnu.FireFly.FFManifest.item.sequencing.*; +import edu.lnu.FireFly.FFManifest.Manifest; +import edu.lnu.FireFly.FFManifest.Organization; +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.item.Presentation; +import edu.lnu.FireFly.FFManifest.item.sequencing.Sequencing; import edu.lnu.FireFly.FFManifest.parser.TestDocException; -import edu.lnu.FireFly.FFManifest.resource.*; +import edu.lnu.FireFly.FFManifest.resource.Resource; public class Activity { // from Organization @@ -84,17 +87,38 @@ return rootActivity; } - public static void updateActivitiesStructure(Manifest manifest){ + public static void synchronizeActivitiesStructure(TreeItem anItem){ + Activity activity = Activity.findActivityByIdentifier(anItem.getIdentifier()); + for (int i=0; i<anItem.getChildCount(); i++){ + Item newRoot = (Item)anItem.getChild(i); + + Activity newActivity = Activity.findActivityByIdentifier(newRoot.getIdentifier()); + if (newActivity == null){ + newActivity = new Activity(manifest, newRoot, activity); + + activity.items.add(newActivity); + } else { + newActivity.copyDataFromItem(newRoot); + synchronizeActivitiesStructure(newRoot); + } + } + } + + public static void synchronizeActivitiesStructure(Manifest manifest){ if (manifest != Activity.manifest){ - fullUpdate(manifest); + fullsynchronizeActivitiesStructure(manifest); return; } - + try { + synchronizeActivitiesStructure(manifest.getRoot()); + } catch (TestDocException e) { + e.printStackTrace(); + } } - public static void fullUpdate(Manifest manifest) { + public static void fullsynchronizeActivitiesStructure(Manifest manifest) { Activity.manifest = manifest; try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 21:04:31
|
Revision: 153 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=153&view=rev Author: sem62 Date: 2008-05-20 14:04:34 -0700 (Tue, 20 May 2008) Log Message: ----------- * Added method getIdentifier to TreeItem Modified Paths: -------------- FFManifest/src/edu/lnu/FireFly/FFManifest/TreeItem.java Modified: FFManifest/src/edu/lnu/FireFly/FFManifest/TreeItem.java =================================================================== --- FFManifest/src/edu/lnu/FireFly/FFManifest/TreeItem.java 2008-05-20 20:25:50 UTC (rev 152) +++ FFManifest/src/edu/lnu/FireFly/FFManifest/TreeItem.java 2008-05-20 21:04:34 UTC (rev 153) @@ -1,5 +1,6 @@ package edu.lnu.FireFly.FFManifest; +import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.parser.TestDocException; import edu.lnu.FireFly.FFManifest.parser.XMLNode; @@ -72,6 +73,18 @@ return true; } + public String getIdentifier(){ + if (getClass() == Item.class){ + return ((Item)this).identifier; + } + + if (getClass() == Organization.class){ + return ((Organization)this).identifier; + } + + return null; + } + public abstract void removeChild(TreeItem child); public void setParent(TreeItem item) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 20:25:42
|
Revision: 152 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=152&view=rev Author: sem62 Date: 2008-05-20 13:25:50 -0700 (Tue, 20 May 2008) Log Message: ----------- Integrated rte.jar Modified Paths: -------------- WebEditor/resources/index.html WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Modified: WebEditor/resources/index.html =================================================================== --- WebEditor/resources/index.html 2008-05-20 20:25:02 UTC (rev 151) +++ WebEditor/resources/index.html 2008-05-20 20:25:50 UTC (rev 152) @@ -85,7 +85,7 @@ </tr> <tr height='*'> <td class='side-body'> - <applet mayscript="" name="webeditor" archive="webeditor.jar,RTEValidators.jar,FFManifest.jar, dom4j.jar" code=edu.lnu.FireFly.WebEditor.WebEditor.class width="100%" height="100%"> + <applet mayscript="" name="webeditor" archive="webeditor.jar,RTEValidators.jar,FFManifest.jar,dom4j.jar,rte.jar" code=edu.lnu.FireFly.WebEditor.WebEditor.class width="100%" height="100%"> <PARAM NAME="courseLocation" VALUE="http://127.0.0.1/sem/course/"> <PARAM NAME="serviceLocation" VALUE="http://127.0.0.1/sem/WebEditor/service/"> <PARAM NAME="templateLocation" VALUE="http://127.0.0.1/sem/WebEditor/template/"> Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-20 20:25:02 UTC (rev 151) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-20 20:25:50 UTC (rev 152) @@ -2,6 +2,11 @@ import javax.swing.JApplet; +import edu.lnu.FireFly.Rte.Activity; +import edu.lnu.FireFly.Rte.Cmi; +import edu.lnu.FireFly.Rte.CmiManager; +import edu.lnu.FireFly.Rte.GlobalStateInformation; + /** * It is an Applet, but it contain API handlers. * @@ -14,43 +19,64 @@ private static final long serialVersionUID = 5396705469025038804L; public static boolean initialized = false; public static boolean terminated = false; - - static public String Initialize(String parameter) { + + public String Initialize(String parameter) { System.out.print("Initialize(" + parameter + ");\n"); + return "true"; } - static public String Terminate(String parameter) { + public String Terminate(String parameter) { System.out.print("Terminate(" + parameter + ");\n"); + return "true"; } - static public String GetValue(String parameter) { + public String GetValue(String parameter) { System.out.print("GetValue(" + parameter + ");\n"); - if (parameter.endsWith("completionStatus")) { - return "incomplete"; + Cmi cmi = getCmiModel(); + + if (parameter.toLowerCase().startsWith("cmi.")){ + return cmi.getValue(parameter.substring(4)); + } else { + return ""; } + } - return "6"; + private Cmi getCmiModel() { + + Activity activity = GlobalStateInformation.getCurrentActivity(); + + Cmi cmi = CmiManager.getInstance().getModelForActivity(activity); + return cmi; } - static public boolean SetValue(String parameter, String value) { + public boolean SetValue(String parameter, String value) { System.out.print("SetValue(" + parameter + ", " + value + ");\n"); - return true; + + Cmi cmi = getCmiModel(); + + if (parameter.toLowerCase().startsWith("cmi.")){ + cmi.setValue(parameter.substring(4), value); + return true; + } else { + return false; + } + } - static public String Commit(String parameter) { + public String Commit(String parameter) { System.out.print("Commit(" + parameter + ");\n"); return "true"; } - static public int GetLastError() { + public int GetLastError() { System.out.print("GetLastError();\n"); return 0; } - static public String GetErrorString(String parameter) { + public String GetErrorString(String parameter) { int code = Integer.parseInt(parameter); String result = ""; @@ -60,7 +86,7 @@ return result; } - static public String GetDiagnostic(String parameter) { + public String GetDiagnostic(String parameter) { System.out.print("GetDiagnostic(" + parameter + ");\n"); return ""; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-20 20:25:02 UTC (rev 151) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-20 20:25:50 UTC (rev 152) @@ -9,6 +9,8 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.Rte.Activity; +import edu.lnu.FireFly.Rte.GlobalStateInformation; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; public class CourseTree extends JTree implements TreeSelectionListener { @@ -38,6 +40,7 @@ public void valueChanged(TreeSelectionEvent e) { if (e.getNewLeadSelectionPath() == null) { try { + GlobalStateInformation.setCurrentActivity(null); getAppletContext().showDocument( new URL(Settings.getInstance().getResourceLocation() + "/empty.htm"), "ContentFrame"); @@ -53,6 +56,9 @@ if (e.getNewLeadSelectionPath().getLastPathComponent().getClass() == Item.class) { Item item = (Item) e.getNewLeadSelectionPath() .getLastPathComponent(); + + GlobalStateInformation.setCurrentActivity(Activity.findActivityByIdentifier(item.identifier)); + try { Resource resource = WebEditor.instance.getManifest().resources .findResourceByIdentifier(item.identifierref); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-20 20:25:02 UTC (rev 151) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-20 20:25:50 UTC (rev 152) @@ -181,9 +181,9 @@ private void displayMenu(MouseEvent e) { if (e.isPopupTrigger()) { Point pt = e.getPoint(); - TreePath path = WebEditor.tree + TreePath path = WebEditor.getCourseTree() .getClosestPathForLocation(pt.x, pt.y); - WebEditor.tree.setSelectionPath(path); + WebEditor.getCourseTree().setSelectionPath(path); manifestItem = (TreeItem) path.getLastPathComponent(); ItemModel model = ItemModels.getModelFromItem(manifestItem); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-20 20:25:02 UTC (rev 151) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-20 20:25:50 UTC (rev 152) @@ -7,12 +7,12 @@ import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; -import javax.swing.JTree; import edu.lnu.FireFly.FFManifest.Manifest; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.FFManifest.parser.Parser; import edu.lnu.FireFly.FFManifest.parser.TestDocException; +import edu.lnu.FireFly.Rte.Activity; import edu.lnu.FireFly.WebEditor.Data.AutoSaveThread; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -30,7 +30,7 @@ */ private static final long serialVersionUID = 1144429894709918030L; - public static JTree tree; + protected static CourseTree courseTree; public static WebEditor instance = null; @@ -85,6 +85,8 @@ ItemModels.synchronizeAllItemDatas(manifest.getRoot()); SummaryPageManager.getInstance().setManifest(manifest); + + Activity.fullUpdate(manifest); } public Manifest getManifest() { @@ -110,10 +112,10 @@ CreateNewCourse(); } - tree = new CourseTree(TreeDataModel.getInstance(), getAppletContext()); - this.add(new JScrollPane(tree)); + courseTree = new CourseTree(TreeDataModel.getInstance(), getAppletContext()); + this.add(new JScrollPane(courseTree)); - tree.addMouseListener(new CourseTreePopupMenu()); + courseTree.addMouseListener(new CourseTreePopupMenu()); } private void parseParameter() { @@ -149,6 +151,8 @@ model.synchronizeItemWithResource(root, "template"); SummaryPageManager.getInstance().updateSummaryPages(); + + Activity.fullUpdate(manifest); } catch (Exception e) { e.printStackTrace(); } @@ -179,4 +183,8 @@ // Install the menu bar in the frame this.setJMenuBar(menuBar); } + + public static CourseTree getCourseTree() { + return courseTree; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 20:25:07
|
Revision: 151 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=151&view=rev Author: sem62 Date: 2008-05-20 13:25:02 -0700 (Tue, 20 May 2008) Log Message: ----------- Extracted this model from webPlayer. Removed AnswersManager because it dosn't working properly at this time. Modified Paths: -------------- RTE/.classpath RTE/src/edu/lnu/FireFly/Rte/Cmi.java Added Paths: ----------- RTE/src/edu/lnu/FireFly/Rte/Activity.java RTE/src/edu/lnu/FireFly/Rte/CmiElement.java RTE/src/edu/lnu/FireFly/Rte/CmiManager.java RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java RTE/src/edu/lnu/FireFly/Rte/Utils.java RTE/src/edu/lnu/FireFly/Rte/elements/ RTE/src/edu/lnu/FireFly/Rte/elements/AnswersElement.java RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLMSElement.java RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLearnerElement.java RTE/src/edu/lnu/FireFly/Rte/elements/IElementGetter.java RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsCorrectResponsesElement.java RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsElement.java RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsObjectivesElement.java RTE/src/edu/lnu/FireFly/Rte/elements/LearnerPreferenceElement.java RTE/src/edu/lnu/FireFly/Rte/elements/ObjectivesElement.java RTE/src/edu/lnu/FireFly/Rte/elements/ScoreElement.java Modified: RTE/.classpath =================================================================== --- RTE/.classpath 2008-05-20 17:16:21 UTC (rev 150) +++ RTE/.classpath 2008-05-20 20:25:02 UTC (rev 151) @@ -2,5 +2,7 @@ <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="lib" path="S:/WebEditor/dom4j.jar"/> + <classpathentry kind="lib" path="S:/WebEditor/FFManifest.jar" sourcepath="S:/WebEditor/FFManifest.jar"/> <classpathentry kind="output" path="bin"/> </classpath> Added: RTE/src/edu/lnu/FireFly/Rte/Activity.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Activity.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/Activity.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,187 @@ +package edu.lnu.FireFly.Rte; + +import java.util.ArrayList; + +import edu.lnu.FireFly.FFManifest.*; +import edu.lnu.FireFly.FFManifest.item.*; +import edu.lnu.FireFly.FFManifest.item.sequencing.*; +import edu.lnu.FireFly.FFManifest.parser.TestDocException; +import edu.lnu.FireFly.FFManifest.resource.*; + +public class Activity { + // from Organization + public String structure; + public boolean objectivesGlobalToSystem; + // from Item + public String identifierref; + public boolean isvisible; + public String parameters; + public String timeLimitAction; + public String dataFromLMS; + public Double completionThreshold; + public Presentation presentation; + // both + public String identifier; + public String title; + public ArrayList<Activity> items; + public String metadata_adlcp_location = ""; + public Sequencing sequencing; + // other + public Activity parent; + public boolean isRoot = false; + private static Activity rootActivity; + + private static Manifest manifest = null; + + public Activity(Manifest manifest, Item item, Activity parentActivity){ + Activity.manifest = manifest; + + copyDataFromItem(item); + + parent = parentActivity; + + items = new ArrayList<Activity>(); + int i; + if (item.items != null){ + for (i = 0; i < item.items.size(); i++){ + items.add(new Activity(manifest, item.items.get(i), this)); + } + } + } + + private void copyDataFromItem(Item item) { + identifierref = item.identifierref; + isvisible = item.isvisible; + parameters = item.parameters; + timeLimitAction = item.timeLimitAction; + dataFromLMS = item.dataFromLMS; + completionThreshold = item.completionThreshold; + presentation = item.presentation; + identifier = item.identifier; + title = item.title; + sequencing = item.sequencing; + } + + public Activity(Manifest manifest, Organization organization){ + Activity.manifest = manifest; + + structure = organization.structure; + objectivesGlobalToSystem = organization.objectivesGlobalToSystem; + identifier = organization.identifier; + title = organization.title; + sequencing = organization.sequencing; + + isRoot = true; + items = new ArrayList<Activity>(); + int i; + for (i = 0; i < organization.items.size(); i++){ + items.add(new Activity(manifest, organization.items.get(i), this)); + } + rootActivity = this; + } + + public static Activity getRoot(){ + return rootActivity; + } + + public static void updateActivitiesStructure(Manifest manifest){ + if (manifest != Activity.manifest){ + fullUpdate(manifest); + + return; + } + + + } + + public static void fullUpdate(Manifest manifest) { + Activity.manifest = manifest; + + try { + new Activity(manifest, (Organization)manifest.organizations.getDefaultOrganization()); + } catch (TestDocException e) { + e.printStackTrace(); + } + } + + public Resource getResource(){ + if (identifierref == null){ + return null; + } + + for (int i=0; i < manifest.resources.resources.size(); i++){ + if (manifest.resources.resources.get(i).identifier.equals(identifierref)){ + return manifest.resources.resources.get(i); + } + } + return null; + } + + public boolean isLeaf(){ + return items.size() == 0; + } + + public int getChildIndex(String id){ + int i; + for (i = 0; i < items.size(); i++){ + if (id.equals(items.get(i).identifier)){ + break; + } + } + return i; + } + + public static Activity findActivityByIdentifier(String identifier){ + return rootActivity.findActivityByIdentifier2(identifier); + } + + public Activity findActivityByIdentifier2(String identifier){ + if (this.identifier.equals(identifier)){ + return this; + } + + for (int i=0; i<items.size(); i++){ + Activity item = items.get(i).findActivityByIdentifier2(identifier); + if (item != null){ + return item; + } + } + return null; + } + + public Activity getLastLeafInCluester(boolean ignoreForvarOnlyControlMode, boolean use_flow_control_mode_attribute){ + + if (isLeaf()){ + return this; + } + + if (!ignoreForvarOnlyControlMode && sequencing.controlMode.forwardOnly){ + return null; + } + + if (use_flow_control_mode_attribute && sequencing.controlMode.flow){ + return items.get(items.size() - 1).getLastLeafInCluester(ignoreForvarOnlyControlMode, use_flow_control_mode_attribute); + } + + return this; + } + + public Activity getFirstLeafInCluester(boolean use_flow_control_mode_attribute){ + if (isLeaf()){ + return this; + } + + if (use_flow_control_mode_attribute){ + } + + if (use_flow_control_mode_attribute && sequencing.controlMode.flow){ + return items.get(0).getFirstLeafInCluester(use_flow_control_mode_attribute); + } else { + return this; + } + } + + public String toString(){ + return title; + } +} Modified: RTE/src/edu/lnu/FireFly/Rte/Cmi.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Cmi.java 2008-05-20 17:16:21 UTC (rev 150) +++ RTE/src/edu/lnu/FireFly/Rte/Cmi.java 2008-05-20 20:25:02 UTC (rev 151) @@ -1,47 +1,276 @@ package edu.lnu.FireFly.Rte; -import java.util.Hashtable; +import java.util.ArrayList; + +import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; +import edu.lnu.FireFly.Rte.elements.AnswersElement; +import edu.lnu.FireFly.Rte.elements.CommentsFromLMSElement; +import edu.lnu.FireFly.Rte.elements.CommentsFromLearnerElement; +import edu.lnu.FireFly.Rte.elements.InteractionsElement; +import edu.lnu.FireFly.Rte.elements.LearnerPreferenceElement; +import edu.lnu.FireFly.Rte.elements.ObjectivesElement; +import edu.lnu.FireFly.Rte.elements.ScoreElement; + public class Cmi { + private CmiElement _version = new CmiElement("1.0"); + private ArrayList<CommentsFromLearnerElement> commentsFromLearner = new ArrayList<CommentsFromLearnerElement>(); + private ArrayList<CommentsFromLMSElement> commentsFromLMS = new ArrayList<CommentsFromLMSElement>(); + public CmiElement completionStatus = new CmiElement("unknown", new String[]{"completed", "incomplete", "not attempted", "unknown"}); + private CmiElement completionThreshold = new CmiElement(""); + private CmiElement credit = new CmiElement("credit", new String[]{"credit", "no-credit"}); + private CmiElement entry = new CmiElement("ab-initio", new String[]{"ab-initio", "resume", ""}); + private CmiElement exit = new CmiElement("", new String[]{"time-out", "suspend", "logout", "normal", ""}); + private ArrayList<InteractionsElement> interactions = new ArrayList<InteractionsElement>(); + private CmiElement launchData = new CmiElement(""); + private CmiElement learnerId = new CmiElement(""); + private CmiElement learnerName = new CmiElement(""); + private LearnerPreferenceElement learnerPreference = new LearnerPreferenceElement(); + private CmiElement location = new CmiElement(""); + private CmiElement maxTimeAllowed = new CmiElement(""); + private CmiElement mode = new CmiElement("normal", new String[]{"normal", "browse", "review"}); + private ArrayList<ObjectivesElement> objectives = new ArrayList<ObjectivesElement>(); + private CmiElement progressMeasure = new CmiElement(""); + private CmiElement scaledPassingScore = new CmiElement(""); + private ScoreElement score = new ScoreElement(); + private CmiElement sessionTime = new CmiElement(""); + private CmiElement successStatus = new CmiElement("unknown", new String[]{"passed", "failed", "unknown"}); + private CmiElement suspendData = new CmiElement(""); + private CmiElement timeLimitAction = new CmiElement(""); + private CmiElement totalTime = new CmiElement(""); - protected Hashtable<String, String> values = new Hashtable<String, String>(); + public ArrayList<AnswersElement> answers = new ArrayList<AnswersElement>(); - private int state = NOT_INITIALIZED_NOT_TERMINATED; + private ArrayList<CmiElement> queryQueue = new ArrayList<CmiElement>(); + + public Cmi(Activity activity){ + addManifestObjectives(activity); + } - public void Initialize(String param){ - values.clear(); - - initDefaultValues(); - - state = INITIALIZED_NOT_TERMINATED; - } + private void addManifestObjectives(Activity activity){ + if (activity == null || activity.sequencing == null || activity.sequencing.objectives == null){ + return; + } - private void initDefaultValues() { - values.put("cmi.completionStatus", "incomplete"); + Objective primaryObjective = activity.sequencing.objectives.primaryObjective; + ObjectivesElement oe = new ObjectivesElement(); + oe.id.value = primaryObjective.objectiveID; + objectives.add(oe); + if (primaryObjective.mapInfo.size() > 0){ + CmiManager.getInstance().getGlobalObjectivesManager().setGlobalObjectives(activity, primaryObjective); + } + int i; + for (i = 0; i < activity.sequencing.objectives.objective.size(); i++){ + primaryObjective = activity.sequencing.objectives.objective.get(i); + oe = new ObjectivesElement(); + oe.id.value = primaryObjective.objectiveID; + objectives.add(oe); + if (primaryObjective.mapInfo.size() > 0){ + CmiManager.getInstance().getGlobalObjectivesManager().setGlobalObjectives(activity, primaryObjective); + } + } } - - public void Terminate(String param){ - state = INITIALIZED_TERMINATED; + + public void setValue(String element, String value){ + CmiElement current = getCmiElement(element); + if (current != null){ + current.value = value; + int i; + for (i = 0; i < queryQueue.size(); i++){ + queryQueue.get(i).value = value; + } + queryQueue.clear(); + } } - public boolean setValue(String param, String value){ - values.put(param, value); - - return true; + public String getValue(String element){ + String result = ""; + CmiElement current = getCmiElement(element); + if (current != null){ + result = current.value; + if (!queryQueue.isEmpty()){ + result = queryQueue.get(queryQueue.size() - 1).value; + } + queryQueue.clear(); + } + return result; } - public String getValue(String param){ - return values.get(param); + private CmiElement getCmiElement(String element){ + String first = element; + String second; + int number = 0; + if (element.indexOf(".") != -1){ + first = Utils.getFirst(element); + element = Utils.removeFirst(element); + } + if (element.indexOf(".") != -1){ + number = Integer.parseInt(Utils.getFirst(element)); + element = Utils.removeFirst(element); + } + second = element; + CmiElement returnElement = null; + if (first.equals("_version")){ + returnElement = _version; + } + if (first.equals("comments_from_learner")){ + if (second.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(commentsFromLearner.size()); + } + else{ + CommentsFromLearnerElement cfle; + if (number < commentsFromLearner.size()){ + cfle = commentsFromLearner.get(number); + + } + else{ + cfle = new CommentsFromLearnerElement(); + commentsFromLearner.add(cfle); + } + returnElement = cfle.getCmiElement(second); + } + } + if (first.equals("comments_from_LMS")){ + if (second.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(commentsFromLMS.size()); + } + else{ + CommentsFromLMSElement cfle; + if (number < commentsFromLMS.size()){ + cfle = commentsFromLMS.get(number); + + } + else{ + cfle = new CommentsFromLMSElement(); + commentsFromLMS.add(cfle); + } + returnElement = cfle.getCmiElement(second); + } + } + if (first.equals("completion_status")){ + returnElement = completionStatus; + } + if (first.equals("completion_threshold")){ + returnElement = completionThreshold; + } + if (first.equals("credit")){ + returnElement = credit; + } + if (first.equals("entry")){ + returnElement = entry; + } + if (first.equals("exit")){ + returnElement = exit; + } + if (first.equals("interactions")){ + if (second.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(interactions.size()); + } + else{ + InteractionsElement ie; + if (number < interactions.size()){ + ie = interactions.get(number); + + } + else{ + ie = new InteractionsElement(); + interactions.add(ie); + } + returnElement = ie.getCmiElement(second); + } + } + if (first.equals("launch_data")){ + returnElement = launchData; + } + if (first.equals("learner_id")){ + returnElement = learnerId; + } + if (first.equals("learner_name")){ + returnElement = learnerName; + } + if (first.equals("learner_preference")){ + returnElement = learnerPreference.getCmiElement(second); + } + if (first.equals("location")){ + returnElement = location; + } + if (first.equals("max_time_allowed")){ + returnElement = maxTimeAllowed; + } + if (first.equals("mode")){ + returnElement = mode; + } + if (first.equals("objectives")){ + if (second.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(objectives.size()); + } + else{ + ObjectivesElement oe; + if (number < objectives.size()){ + if (number < 0){ + return null; + } + + oe = objectives.get(number); + CmiManager.getInstance().getGlobalObjectivesManager().getGlobalObjectives(oe, second, queryQueue); + } + else{ + oe = new ObjectivesElement(); + objectives.add(oe); + } + returnElement = oe.getCmiElement(second); + } + } + if (first.equals("progress_measure")){ + returnElement = progressMeasure; + } + if (first.equals("scaled_passing_score")){ + returnElement = scaledPassingScore; + } + if (first.equals("score")){ + returnElement = score.getCmiElement(second); + } + if (first.equals("session_time")){ + returnElement = sessionTime; + } + if (first.equals("success_status")){ + returnElement = successStatus; + } + if (first.equals("suspend_data")){ + returnElement = suspendData; + } + if (first.equals("time_limit_action")){ + returnElement = timeLimitAction; + } + if (first.equals("total_time")){ + returnElement = totalTime; + } + if (first.equals("answers")){ + if (second.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(answers.size()); + } + else{ + AnswersElement ae; + if (number < answers.size()){ + ae = answers.get(number); + + } + else{ + ae = new AnswersElement(); + answers.add(ae); + } + returnElement = ae.getCmiElement(second); + } + } + return returnElement; } - - public int getState() { - return state; - } - - public void setState(int state) { - this.state = state; - } - - public static final int NOT_INITIALIZED_NOT_TERMINATED = 0; - public static final int INITIALIZED_NOT_TERMINATED = 1; - public static final int INITIALIZED_TERMINATED = 2; + +// public void checkResult(){ +// AnswersManager answersManager = new AnswersManager(GlobalStateInformation.getCurrentActivity()); +// answersManager.checkResult(); +// } } Added: RTE/src/edu/lnu/FireFly/Rte/CmiElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/CmiElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/CmiElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,19 @@ +package edu.lnu.FireFly.Rte; + +public class CmiElement { + public String value; + public String[] tokens; + + public CmiElement(String v){ + value = v; + } + + public CmiElement(String v, String[] t){ + value = v; + tokens = new String[t.length]; + int i; + for (i = 0; i < t.length; i++){ + tokens[i] = t[i]; + } + } +} Added: RTE/src/edu/lnu/FireFly/Rte/CmiManager.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/CmiManager.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/CmiManager.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,50 @@ +package edu.lnu.FireFly.Rte; + +import java.util.HashMap; + +/** + * Manager of Cmi models + * + * @author Yuryj Semen + */ +public class CmiManager { + private static CmiManager obj = null; + private CmiManager(){} + + public static CmiManager getInstance(){ + + if (obj == null){ + obj = new CmiManager(); + } + + return obj; + } + + + /** + * This hashmap containe pairs activity_id <==> CmiModel. + */ + private HashMap<String, Cmi> activitiesVSModels = new HashMap<String, Cmi>(); + + /** + * Global objectives models manager for managing global objectives. + * It is under CMI models. + */ + private GlobalObjectivesManager globalObjectivesManager = new GlobalObjectivesManager(); + public GlobalObjectivesManager getGlobalObjectivesManager() { + return globalObjectivesManager; + } + + /** + * It give a requested Tracking model for specified activity + * @param activity A specified activity for getting Cmi model + * @return Cmi model for specified activity + */ + public Cmi getModelForActivity(Activity activity){ + if (!activitiesVSModels.containsKey(activity.identifier)){ + activitiesVSModels.put(activity.identifier, new Cmi(activity)); + } + + return activitiesVSModels.get(activity.identifier); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/GlobalObjectivesManager.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,50 @@ +package edu.lnu.FireFly.Rte; + +import java.util.ArrayList; + +import edu.lnu.FireFly.FFManifest.item.sequencing.objectives.Objective; +import edu.lnu.FireFly.Rte.elements.ObjectivesElement; + +public class GlobalObjectivesManager { + private ArrayList<ObjectivesElement> globalObjectives = new ArrayList<ObjectivesElement>(); + private ArrayList<ObjectiveMap> objectiveMaps = new ArrayList<ObjectiveMap>(); + + public void setGlobalObjectives(Activity activity, Objective objective){ + int i; + for (i = 0; i < objective.mapInfo.size(); i++){ + if (getObjectiveById(objective.mapInfo.get(i).targetObjectiveID) == null){ + ObjectivesElement oe = new ObjectivesElement(); + oe.id.value = objective.mapInfo.get(i).targetObjectiveID; + globalObjectives.add(oe); + } + ObjectiveMap om = new ObjectiveMap(activity.identifier + objective.objectiveID, objective.mapInfo.get(i).targetObjectiveID); + objectiveMaps.add(om); + } + } + + public void getGlobalObjectives(ObjectivesElement oe, String element, ArrayList<CmiElement> list){ + String id = GlobalStateInformation.getCurrentActivity().identifier + oe.id.value; + int i; + for (i = 0; i < objectiveMaps.size(); i++){ + ObjectiveMap current = objectiveMaps.get(i); + if (current.activityObjectiveID.equals(id)){ + ObjectivesElement global = getObjectiveById(current.targetObjectiveID); + CmiElement ce = global.getCmiElement(element); + list.add(ce); + } + } + + } + + private ObjectivesElement getObjectiveById(String id){ + ObjectivesElement result = null; + int i; + for (i = 0; i < globalObjectives.size(); i++){ + if (globalObjectives.get(i).id.value.equals(id)){ + result = globalObjectives.get(i); + break; + } + } + return result; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/GlobalStateInformation.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,20 @@ +package edu.lnu.FireFly.Rte; + +public class GlobalStateInformation { + protected static Activity currentActivity = null; + protected static Activity suspendedActivity = null; + + public static Activity getCurrentActivity(){ + return currentActivity; + } + public static void setCurrentActivity(Activity value){ + currentActivity = value; + } + + public static Activity getSuspendedActivity(){ + return suspendedActivity; + } + public static void setSuspendedActivity(Activity value){ + suspendedActivity = value; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/ObjectiveMap.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,16 @@ +package edu.lnu.FireFly.Rte; + +public class ObjectiveMap { + public String activityObjectiveID = ""; + public String targetObjectiveID = ""; + public boolean readObjectiveSatisfiedStatus = true; + public boolean writeObjectiveSatisfiedStatus = false; + public boolean readObjectiveNormalizedMeasure = true; + public boolean writeObjectiveNormalizedMeasure = false; + + public ObjectiveMap(String localId, String globalId){ + activityObjectiveID = localId; + targetObjectiveID = globalId; + } + +} Added: RTE/src/edu/lnu/FireFly/Rte/Utils.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Utils.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/Utils.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,32 @@ +package edu.lnu.FireFly.Rte; + +public class Utils { + public static String getFirst(String s){ + return s.substring(0, s.indexOf(".")); + } + + public static String removeFirst(String s){ + int index = s.indexOf(".") + 1; + return s.substring(index, s.length()); + } + + public static String getActivityType(Activity activity){ + if (activity == null || activity.getResource() == null){ + return "asset"; + } + + if (activity.getResource().scormType.equals("sco")){ + return "sco"; + } + return "asset"; + } + + public static String getChoiceTarget(String choice){ + choice = choice.substring(choice.indexOf("choice") + 6, choice.length()); + choice = choice.trim(); + choice = choice.substring(choice.indexOf("target") + 6, choice.length() - 1); + choice = choice.trim(); + choice = choice.substring(choice.indexOf("=") + 1, choice.length()); + return choice.trim(); + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/AnswersElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/AnswersElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/AnswersElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,11 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class AnswersElement implements IElementGetter{ + public CmiElement value = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + return value; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLMSElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLMSElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLMSElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,23 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class CommentsFromLMSElement implements IElementGetter { + public CmiElement comment = new CmiElement(""); + public CmiElement location = new CmiElement(""); + public CmiElement timestamp = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + CmiElement returnElement = null; + if (element.equals("comment")){ + returnElement = comment; + } + if (element.equals("location")){ + returnElement = location; + } + if (element.equals("timestamp")){ + returnElement = timestamp; + } + return returnElement; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLearnerElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLearnerElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/CommentsFromLearnerElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,23 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class CommentsFromLearnerElement implements IElementGetter{ + public CmiElement comment = new CmiElement(""); + public CmiElement location = new CmiElement(""); + public CmiElement timestamp = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + CmiElement returnElement = null; + if (element.equals("comment")){ + returnElement = comment; + } + if (element.equals("location")){ + returnElement = location; + } + if (element.equals("timestamp")){ + returnElement = timestamp; + } + return returnElement; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/IElementGetter.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/IElementGetter.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/IElementGetter.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,7 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public interface IElementGetter { + public CmiElement getCmiElement(String element); +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsCorrectResponsesElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsCorrectResponsesElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsCorrectResponsesElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,11 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class InteractionsCorrectResponsesElement implements IElementGetter { + public CmiElement pattern = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + return pattern; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,96 @@ +package edu.lnu.FireFly.Rte.elements; + +import java.util.ArrayList; + +import edu.lnu.FireFly.Rte.CmiElement; +import edu.lnu.FireFly.Rte.Utils; + +public class InteractionsElement implements IElementGetter { + public CmiElement id = new CmiElement(""); + public CmiElement type = new CmiElement(""); + public ArrayList<InteractionsObjectivesElement> objectives = new ArrayList<InteractionsObjectivesElement>(); + public CmiElement timestamp = new CmiElement(""); + public ArrayList<InteractionsCorrectResponsesElement> correctResponses = new ArrayList<InteractionsCorrectResponsesElement>(); + public CmiElement weighting = new CmiElement(""); + public CmiElement learnerResponse = new CmiElement(""); + public CmiElement result = new CmiElement("", new String[]{"correct", "incorrect", "unanticipated", "neutral", "real (10,7)"}); + public CmiElement latency = new CmiElement(""); + public CmiElement description = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + CmiElement returnElement = null; + if (element.equals("id")){ + returnElement = id; + } + if (element.equals("type")){ + returnElement = type; + } + if (element.startsWith("objectives")){ + element = Utils.removeFirst(element); + int number = 0; + if (element.indexOf(".") != -1){ + number = Integer.parseInt(Utils.getFirst(element)); + element = Utils.removeFirst(element); + } + if (element.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(objectives.size()); + } + else{ + InteractionsObjectivesElement ioe; + if (number < objectives.size()){ + ioe = objectives.get(number); + + } + else{ + ioe = new InteractionsObjectivesElement(); + objectives.add(ioe); + } + returnElement = ioe.getCmiElement(element); + } + } + if (element.equals("timestamp")){ + returnElement = timestamp; + } + if (element.equals("correct_responses")){ + element = Utils.removeFirst(element); + int number = 0; + if (element.indexOf(".") != -1){ + number = Integer.parseInt(Utils.getFirst(element)); + element = Utils.removeFirst(element); + } + if (element.equals("_count")){ + returnElement = new CmiElement(""); + returnElement.value = String.valueOf(correctResponses.size()); + } + else{ + InteractionsCorrectResponsesElement icre; + if (number < correctResponses.size()){ + icre = correctResponses.get(number); + + } + else{ + icre = new InteractionsCorrectResponsesElement(); + correctResponses.add(icre); + } + returnElement = icre.getCmiElement(element); + } + } + if (element.equals("weighting")){ + returnElement = weighting; + } + if (element.equals("learner_response")){ + returnElement = learnerResponse; + } + if (element.equals("result")){ + returnElement = result; + } + if (element.equals("latency")){ + returnElement = latency; + } + if (element.equals("description")){ + returnElement = description; + } + return returnElement; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsObjectivesElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsObjectivesElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/InteractionsObjectivesElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,11 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class InteractionsObjectivesElement implements IElementGetter { + public CmiElement id = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + return id; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/LearnerPreferenceElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/LearnerPreferenceElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/LearnerPreferenceElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,27 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class LearnerPreferenceElement implements IElementGetter { + public CmiElement audioLevel = new CmiElement("0"); + public CmiElement language = new CmiElement(""); + public CmiElement deliverySpeed = new CmiElement("0"); + public CmiElement audioCaptioning = new CmiElement(""); + + public CmiElement getCmiElement(String element) { + CmiElement returnElement = null; + if (element.equals("audio_level")){ + returnElement = audioLevel; + } + if (element.equals("language")){ + returnElement = language; + } + if (element.equals("delivery_speed")){ + returnElement = deliverySpeed; + } + if (element.equals("audio_captioning")){ + returnElement = audioCaptioning; + } + return returnElement; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/ObjectivesElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/ObjectivesElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/ObjectivesElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,34 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; +import edu.lnu.FireFly.Rte.Utils; + +public class ObjectivesElement implements IElementGetter { + + public CmiElement id = new CmiElement(""); + public ScoreElement score = new ScoreElement(); + public CmiElement completionStatus = new CmiElement("unknown", new String[]{"completed", "incomplete", "not attempted", "unknown"}); + public CmiElement progressMeasure = new CmiElement(""); + public CmiElement description = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + CmiElement returnElement = null; + if (element.equals("id")){ + returnElement = id; + } + if (element.startsWith("score")){ + element = Utils.removeFirst(element); + returnElement = score.getCmiElement(element); + } + if (element.equals("completion_status")){ + returnElement = completionStatus; + } + if (element.equals("progress_measure")){ + returnElement = progressMeasure; + } + if (element.equals("description")){ + returnElement = description; + } + return returnElement; + } +} Added: RTE/src/edu/lnu/FireFly/Rte/elements/ScoreElement.java =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/elements/ScoreElement.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/elements/ScoreElement.java 2008-05-20 20:25:02 UTC (rev 151) @@ -0,0 +1,27 @@ +package edu.lnu.FireFly.Rte.elements; + +import edu.lnu.FireFly.Rte.CmiElement; + +public class ScoreElement implements IElementGetter { + public CmiElement scaled = new CmiElement(""); + public CmiElement raw = new CmiElement(""); + public CmiElement max = new CmiElement(""); + public CmiElement min = new CmiElement(""); + + public CmiElement getCmiElement(String element){ + CmiElement returnElement = null; + if (element.equals("scaled")){ + returnElement = scaled; + } + if (element.equals("raw")){ + returnElement = raw; + } + if (element.equals("max")){ + returnElement = max; + } + if (element.equals("min")){ + returnElement = min; + } + return returnElement; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 17:16:19
|
Revision: 150 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=150&view=rev Author: sem62 Date: 2008-05-20 10:16:21 -0700 (Tue, 20 May 2008) Log Message: ----------- Created base version of this library. Using very poor method (HashTable). Added Paths: ----------- RTE/src/edu/ RTE/src/edu/lnu/ RTE/src/edu/lnu/FireFly/ RTE/src/edu/lnu/FireFly/Rte/ RTE/src/edu/lnu/FireFly/Rte/Cmi.java RTE/src/rte.jardesc Removed Paths: ------------- RTE/src/Cmi.java Deleted: RTE/src/Cmi.java =================================================================== --- RTE/src/Cmi.java 2008-05-20 16:06:25 UTC (rev 149) +++ RTE/src/Cmi.java 2008-05-20 17:16:21 UTC (rev 150) @@ -1,4 +0,0 @@ - -public class Cmi { - -} Copied: RTE/src/edu/lnu/FireFly/Rte/Cmi.java (from rev 149, RTE/src/Cmi.java) =================================================================== --- RTE/src/edu/lnu/FireFly/Rte/Cmi.java (rev 0) +++ RTE/src/edu/lnu/FireFly/Rte/Cmi.java 2008-05-20 17:16:21 UTC (rev 150) @@ -0,0 +1,47 @@ +package edu.lnu.FireFly.Rte; +import java.util.Hashtable; + +public class Cmi { + + protected Hashtable<String, String> values = new Hashtable<String, String>(); + + private int state = NOT_INITIALIZED_NOT_TERMINATED; + + public void Initialize(String param){ + values.clear(); + + initDefaultValues(); + + state = INITIALIZED_NOT_TERMINATED; + } + + private void initDefaultValues() { + values.put("cmi.completionStatus", "incomplete"); + } + + public void Terminate(String param){ + state = INITIALIZED_TERMINATED; + } + + public boolean setValue(String param, String value){ + values.put(param, value); + + return true; + } + + public String getValue(String param){ + return values.get(param); + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public static final int NOT_INITIALIZED_NOT_TERMINATED = 0; + public static final int INITIALIZED_NOT_TERMINATED = 1; + public static final int INITIALIZED_TERMINATED = 2; +} Added: RTE/src/rte.jardesc =================================================================== --- RTE/src/rte.jardesc (rev 0) +++ RTE/src/rte.jardesc 2008-05-20 17:16:21 UTC (rev 150) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="WINDOWS-1251" standalone="no"?> +<jardesc> + <jar path="S:/WebEditor/rte.jar"/> + <options buildIfNeeded="true" compress="true" descriptionLocation="/RTE/src/rte.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/> + <storedRefactorings deprecationInfo="true" structuralOnly="false"/> + <selectedProjects/> + <manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true"> + <sealing sealJar="false"> + <packagesToSeal/> + <packagesToUnSeal/> + </sealing> + </manifest> + <selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false"> + <javaElement handleIdentifier="=RTE"/> + </selectedElements> +</jardesc> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 16:07:14
|
Revision: 149 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=149&view=rev Author: sem62 Date: 2008-05-20 09:06:25 -0700 (Tue, 20 May 2008) Log Message: ----------- Initial import. Added Paths: ----------- RTE/.classpath RTE/.project RTE/src/ RTE/src/Cmi.java Added: RTE/.classpath =================================================================== --- RTE/.classpath (rev 0) +++ RTE/.classpath 2008-05-20 16:06:25 UTC (rev 149) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="output" path="bin"/> +</classpath> Added: RTE/.project =================================================================== --- RTE/.project (rev 0) +++ RTE/.project 2008-05-20 16:06:25 UTC (rev 149) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>RTE</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Added: RTE/src/Cmi.java =================================================================== --- RTE/src/Cmi.java (rev 0) +++ RTE/src/Cmi.java 2008-05-20 16:06:25 UTC (rev 149) @@ -0,0 +1,4 @@ + +public class Cmi { + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 16:02:53
|
Revision: 148 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=148&view=rev Author: sem62 Date: 2008-05-20 09:01:14 -0700 (Tue, 20 May 2008) Log Message: ----------- Initial import. Added Paths: ----------- RTE/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-20 15:56:15
|
Revision: 147 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=147&view=rev Author: sem62 Date: 2008-05-20 08:54:30 -0700 (Tue, 20 May 2008) Log Message: ----------- * Creating method registerPropertyDlg(PropertyDlg dlg). It must be called from constructor of current model or somethig else. It must set an instance of property dialog for this model. * remove all methods Configure because they was the same. * Deleted all constructors from subclasses of PropertyDlg and added the same constructor to they parent class. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-20 15:54:30 UTC (rev 147) @@ -29,6 +29,7 @@ } public CourseTree(TreeDataModel dataModel, AppletContext appletContext) { + super(dataModel); this.appletContext = appletContext; this.addTreeSelectionListener(this); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/ChapterPropertiestsDlg.java 2008-05-20 15:54:30 UTC (rev 147) @@ -16,569 +16,566 @@ */ public class ChapterPropertiestsDlg extends PropertyDlg implements ItemListener { - /** - * - */ - private static final long serialVersionUID = -4476966699237610316L; + /** + * + */ + private static final long serialVersionUID = -4476966699237610316L; - private javax.swing.JCheckBox flowCheckBox; - private javax.swing.JCheckBox choiceCheckBox; - private javax.swing.JCheckBox choiceExitCheckBox; - private javax.swing.JCheckBox forwarOnlyCheckBox; - private javax.swing.JComboBox configurationComboBox; - private javax.swing.JLabel titleLabel; - private javax.swing.JLabel jLabel2; - private javax.swing.JLabel jLabel3; - private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel6; - private javax.swing.JPanel generalPanel; - private javax.swing.JPanel controlModesPanel; - private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel4; - private javax.swing.JPanel jPanel5; - private javax.swing.JPanel jPanel6; - private javax.swing.JTextField titleTextField; + private javax.swing.JCheckBox flowCheckBox; + private javax.swing.JCheckBox choiceCheckBox; + private javax.swing.JCheckBox choiceExitCheckBox; + private javax.swing.JCheckBox forwarOnlyCheckBox; + private javax.swing.JComboBox configurationComboBox; + private javax.swing.JLabel titleLabel; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JLabel jLabel5; + private javax.swing.JLabel jLabel6; + private javax.swing.JPanel generalPanel; + private javax.swing.JPanel controlModesPanel; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JTextField titleTextField; - /** Creates new form ChapterPropertiests */ - public ChapterPropertiestsDlg() { - obj = this; + protected void initComponents() { + setDefaultCloseOperation(HIDE_ON_CLOSE); + setTitle("Propertiests..."); - initComponents(); - } + generalPanel = new javax.swing.JPanel(); + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + controlModesPanel = new javax.swing.JPanel(); + jPanel3 = new javax.swing.JPanel(); + flowCheckBox = new javax.swing.JCheckBox(); + jLabel2 = new javax.swing.JLabel(); + jPanel4 = new javax.swing.JPanel(); + choiceCheckBox = new javax.swing.JCheckBox(); + jLabel3 = new javax.swing.JLabel(); + jPanel5 = new javax.swing.JPanel(); + choiceExitCheckBox = new javax.swing.JCheckBox(); + jLabel4 = new javax.swing.JLabel(); + jPanel6 = new javax.swing.JPanel(); + forwarOnlyCheckBox = new javax.swing.JCheckBox(); + jLabel5 = new javax.swing.JLabel(); + jLabel6 = new javax.swing.JLabel(); - private void initComponents() { - setDefaultCloseOperation(HIDE_ON_CLOSE); - setTitle("Propertiests..."); + configurationComboBox = new javax.swing.JComboBox(); + configurationComboBox.addItemListener(this); - generalPanel = new javax.swing.JPanel(); - titleLabel = new javax.swing.JLabel(); - titleTextField = new javax.swing.JTextField(); - controlModesPanel = new javax.swing.JPanel(); - jPanel3 = new javax.swing.JPanel(); - flowCheckBox = new javax.swing.JCheckBox(); - jLabel2 = new javax.swing.JLabel(); - jPanel4 = new javax.swing.JPanel(); - choiceCheckBox = new javax.swing.JCheckBox(); - jLabel3 = new javax.swing.JLabel(); - jPanel5 = new javax.swing.JPanel(); - choiceExitCheckBox = new javax.swing.JCheckBox(); - jLabel4 = new javax.swing.JLabel(); - jPanel6 = new javax.swing.JPanel(); - forwarOnlyCheckBox = new javax.swing.JCheckBox(); - jLabel5 = new javax.swing.JLabel(); - jLabel6 = new javax.swing.JLabel(); + cancelButton = new javax.swing.JButton("Cancel"); + okButton = new javax.swing.JButton("Ok"); + okButton.addActionListener(this); + cancelButton.addActionListener(this); - configurationComboBox = new javax.swing.JComboBox(); - configurationComboBox.addItemListener(this); + cancelButton.setPreferredSize(new java.awt.Dimension(65, 23)); + okButton.setPreferredSize(new java.awt.Dimension(65, 23)); - cancelButton = new javax.swing.JButton("Cancel"); - okButton = new javax.swing.JButton("Ok"); - okButton.addActionListener(this); - cancelButton.addActionListener(this); + setName("Propertiests..."); - cancelButton.setPreferredSize(new java.awt.Dimension(65, 23)); - okButton.setPreferredSize(new java.awt.Dimension(65, 23)); + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("Title"); - setName("Propertiests..."); - - generalPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("General")); - titleLabel.setText("Title"); - - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( - generalPanel); - generalPanel.setLayout(jPanel1Layout); - jPanel1Layout - .setHorizontalGroup(jPanel1Layout - .createParallelGroup( + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( + generalPanel); + generalPanel.setLayout(jPanel1Layout); + jPanel1Layout + .setHorizontalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel1Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( + .addComponent( + titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 588, + Short.MAX_VALUE) + .addGroup( jPanel1Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel1Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - titleTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, - 588, - Short.MAX_VALUE) - .addGroup( - jPanel1Layout - .createSequentialGroup() - .addComponent( - titleLabel) - .addContainerGap( - 568, - Short.MAX_VALUE) - )) - .addContainerGap())); - jPanel1Layout - .setVerticalGroup(jPanel1Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel1Layout - .createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - titleTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap())); + .createSequentialGroup() + .addComponent( + titleLabel) + .addContainerGap( + 568, + Short.MAX_VALUE))) + .addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); - controlModesPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Control modes")); + controlModesPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Control modes")); - jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - flowCheckBox.setText("Flow"); + flowCheckBox.setText("Flow"); - jLabel2 - .setText("Indicates the flow sequencing requests is permitted to the children of this activity."); // NOI18N + jLabel2 + .setText("Indicates the flow sequencing requests is permitted to the children of this activity."); // NOI18N - javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( - jPanel3); - jPanel3.setLayout(jPanel3Layout); - jPanel3Layout - .setHorizontalGroup(jPanel3Layout - .createParallelGroup( + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( + jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout + .setHorizontalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel3Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel3Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel3Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - flowCheckBox) - .addComponent(jLabel2)) - .addContainerGap(180, Short.MAX_VALUE))); - jPanel3Layout - .setVerticalGroup(jPanel3Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel3Layout - .createSequentialGroup() - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent(flowCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel2))); + .addComponent( + flowCheckBox) + .addComponent(jLabel2)) + .addContainerGap(180, Short.MAX_VALUE))); + jPanel3Layout + .setVerticalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(flowCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel2))); - jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - choiceCheckBox.setText("Choice"); + choiceCheckBox.setText("Choice"); - jLabel3 - .setText("Indicates that a choice sequencing request is permitted to target the children of the activity."); // NOI18N + jLabel3 + .setText("Indicates that a choice sequencing request is permitted to target the children of the activity."); // NOI18N - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( - jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout - .setHorizontalGroup(jPanel4Layout - .createParallelGroup( + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout + .setHorizontalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel4Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - choiceCheckBox) - .addComponent(jLabel3)) - .addContainerGap(130, Short.MAX_VALUE))); - jPanel4Layout - .setVerticalGroup(jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addComponent(choiceCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel3).addContainerGap( - 3, Short.MAX_VALUE))); + .addComponent( + choiceCheckBox) + .addComponent(jLabel3)) + .addContainerGap(130, Short.MAX_VALUE))); + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(choiceCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel3).addContainerGap( + 3, Short.MAX_VALUE))); - jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - choiceExitCheckBox.setText("Choice exit"); + choiceExitCheckBox.setText("Choice exit"); - jLabel4 - .setText("Indicates that an active child of this activity is permitted to terminate if a choice sequencing request is processed."); // NOI18N + jLabel4 + .setText("Indicates that an active child of this activity is permitted to terminate if a choice sequencing request is processed."); // NOI18N - javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout( - jPanel5); - jPanel5.setLayout(jPanel5Layout); - jPanel5Layout - .setHorizontalGroup(jPanel5Layout - .createParallelGroup( + javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout( + jPanel5); + jPanel5.setLayout(jPanel5Layout); + jPanel5Layout + .setHorizontalGroup(jPanel5Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel5Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel5Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel5Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel5Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - choiceExitCheckBox) - .addComponent(jLabel4)) - .addContainerGap(30, Short.MAX_VALUE))); - jPanel5Layout - .setVerticalGroup(jPanel5Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel5Layout - .createSequentialGroup() - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent(choiceExitCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel4))); + .addComponent( + choiceExitCheckBox) + .addComponent(jLabel4)) + .addContainerGap(30, Short.MAX_VALUE))); + jPanel5Layout + .setVerticalGroup(jPanel5Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel5Layout + .createSequentialGroup() + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent(choiceExitCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel4))); - jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - forwarOnlyCheckBox.setText("Forward only"); - jLabel5 - .setText("Indicates that backward targets (in terms of activity tree traversal) are not permitted for the children of this activity. "); + jPanel6.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + forwarOnlyCheckBox.setText("Forward only"); + jLabel5 + .setText("Indicates that backward targets (in terms of activity tree traversal) are not permitted for the children of this activity. "); - javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout( - jPanel6); - jPanel6.setLayout(jPanel6Layout); - jPanel6Layout - .setHorizontalGroup(jPanel6Layout - .createParallelGroup( + javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout( + jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout + .setHorizontalGroup(jPanel6Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel6Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel6Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel6Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel6Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - forwarOnlyCheckBox) - .addComponent(jLabel5)) - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE))); - jPanel6Layout - .setVerticalGroup(jPanel6Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel6Layout - .createSequentialGroup() - .addContainerGap() - .addComponent(forwarOnlyCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jLabel5) - )); + .addComponent( + forwarOnlyCheckBox) + .addComponent(jLabel5)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); + jPanel6Layout + .setVerticalGroup(jPanel6Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel6Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(forwarOnlyCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel5))); - configurationComboBox.setModel(new javax.swing.DefaultComboBoxModel( - new String[] { "User defined", "Lecture materials", - "Examinations materials" })); - jLabel6.setText("Choose configuration"); + configurationComboBox.setModel(new javax.swing.DefaultComboBoxModel( + new String[] { "User defined", "Lecture materials", + "Examinations materials" })); + jLabel6.setText("Choose configuration"); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( - controlModesPanel); - controlModesPanel.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel2Layout.createSequentialGroup() - .addContainerGap().addGroup( - jPanel2Layout.createParallelGroup( + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( + controlModesPanel); + controlModesPanel.setLayout(jPanel2Layout); + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel6, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE).addComponent(jPanel5, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE).addComponent(jPanel4, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE).addComponent(jPanel3, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE).addComponent( - configurationComboBox, 0, 588, - Short.MAX_VALUE).addComponent(jLabel6)) - .addContainerGap())); - jPanel2Layout - .setVerticalGroup(jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel2Layout - .createSequentialGroup() - .addComponent(jLabel6) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - configurationComboBox, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - jPanel3, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - jPanel4, - javax.swing.GroupLayout.PREFERRED_SIZE, - 53, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - jPanel5, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - jPanel6, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(10, Short.MAX_VALUE) - )); + .addComponent( + jPanel6, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + jPanel5, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + jPanel4, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + jPanel3, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + configurationComboBox, + 0, 588, + Short.MAX_VALUE) + .addComponent(jLabel6)) + .addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addComponent(jLabel6) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + configurationComboBox, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + jPanel3, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + jPanel4, + javax.swing.GroupLayout.PREFERRED_SIZE, + 53, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + jPanel5, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + jPanel6, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(10, Short.MAX_VALUE))); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout( - getContentPane()); - getContentPane().setLayout(layout); - layout - .setHorizontalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent( + controlModesPanel, + javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + generalPanel, + javax.swing.GroupLayout.Alignment.LEADING, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent( - controlModesPanel, - javax.swing.GroupLayout.Alignment.LEADING, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - generalPanel, - javax.swing.GroupLayout.Alignment.LEADING, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addGroup( - layout - .createSequentialGroup() - .addComponent( - okButton, - javax.swing.GroupLayout.PREFERRED_SIZE, - 86, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - cancelButton, - javax.swing.GroupLayout.PREFERRED_SIZE, - 91, - javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap())); - layout - .setVerticalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - generalPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - controlModesPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - okButton, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent( - cancelButton, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE))); + .createSequentialGroup() + .addComponent( + okButton, + javax.swing.GroupLayout.PREFERRED_SIZE, + 86, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + cancelButton, + javax.swing.GroupLayout.PREFERRED_SIZE, + 91, + javax.swing.GroupLayout.PREFERRED_SIZE))) + .addContainerGap())); + layout + .setVerticalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + generalPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + controlModesPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + okButton, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + cancelButton, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); - this.getRootPane().setDefaultButton(okButton); - pack(); - } + this.getRootPane().setDefaultButton(okButton); + pack(); + } - @Override - public void itemStateChanged(ItemEvent arg0) { - if (arg0.getStateChange() == ItemEvent.SELECTED) { - ChapterPropertiestsDlg dlg = (ChapterPropertiestsDlg) obj; + @Override + public void itemStateChanged(ItemEvent arg0) { + if (arg0.getStateChange() == ItemEvent.SELECTED) { + switch (configurationComboBox.getSelectedIndex()) { + case 0: + flowCheckBox.setSelected(false); + choiceCheckBox.setSelected(true); + forwarOnlyCheckBox.setSelected(false); + choiceExitCheckBox.setSelected(true); - switch (configurationComboBox.getSelectedIndex()) { - case 0: - dlg.flowCheckBox.setSelected(false); - dlg.choiceCheckBox.setSelected(true); - dlg.forwarOnlyCheckBox.setSelected(false); - dlg.choiceExitCheckBox.setSelected(true); + flowCheckBox.setEnabled(true); + choiceCheckBox.setEnabled(true); + forwarOnlyCheckBox.setEnabled(true); + choiceExitCheckBox.setEnabled(true); - dlg.flowCheckBox.setEnabled(true); - dlg.choiceCheckBox.setEnabled(true); - dlg.forwarOnlyCheckBox.setEnabled(true); - dlg.choiceExitCheckBox.setEnabled(true); + break; + case 1: + flowCheckBox.setSelected(true); + choiceCheckBox.setSelected(true); + forwarOnlyCheckBox.setSelected(false); + choiceExitCheckBox.setSelected(true); - break; - case 1: - dlg.flowCheckBox.setSelected(true); - dlg.choiceCheckBox.setSelected(true); - dlg.forwarOnlyCheckBox.setSelected(false); - dlg.choiceExitCheckBox.setSelected(true); + flowCheckBox.setEnabled(false); + choiceCheckBox.setEnabled(false); + forwarOnlyCheckBox.setEnabled(false); + choiceExitCheckBox.setEnabled(false); - dlg.flowCheckBox.setEnabled(false); - dlg.choiceCheckBox.setEnabled(false); - dlg.forwarOnlyCheckBox.setEnabled(false); - dlg.choiceExitCheckBox.setEnabled(false); + break; + case 2: + flowCheckBox.setSelected(true); + choiceCheckBox.setSelected(false); + forwarOnlyCheckBox.setSelected(true); + choiceExitCheckBox.setSelected(false); - break; - case 2: - dlg.flowCheckBox.setSelected(true); - dlg.choiceCheckBox.setSelected(false); - dlg.forwarOnlyCheckBox.setSelected(true); - dlg.choiceExitCheckBox.setSelected(false); + flowCheckBox.setEnabled(false); + choiceCheckBox.setEnabled(false); + forwarOnlyCheckBox.setEnabled(false); + choiceExitCheckBox.setEnabled(false); - dlg.flowCheckBox.setEnabled(false); - dlg.choiceCheckBox.setEnabled(false); - dlg.forwarOnlyCheckBox.setEnabled(false); - dlg.choiceExitCheckBox.setEnabled(false); - - break; - } - } + break; + } } + } - @Override - protected void fillFields() { - ChapterPropertiestsDlg dlg = (ChapterPropertiestsDlg) obj; + @Override + protected void fillFields() { + titleTextField.setText(manifestItem.getTitle()); + titleTextField.selectAll(); - dlg.titleTextField.setText(manifestItem.getTitle()); - dlg.titleTextField.selectAll(); + Sequencing sequencing = null; + if (manifestItem.getClass() == Item.class) { + sequencing = ((Item) manifestItem).sequencing; + } - Sequencing sequencing = null; - if (manifestItem.getClass() == Item.class) { - sequencing = ((Item) manifestItem).sequencing; - } + if (manifestItem.getClass() == Organization.class) { + sequencing = ((Organization) manifestItem).sequencing; + } - if (manifestItem.getClass() == Organization.class) { - sequencing = ((Organization) manifestItem).sequencing; - } - - if (sequencing != null && sequencing.controlMode != null) { - dlg.flowCheckBox.setSelected(sequencing.controlMode.flow); - dlg.choiceCheckBox.setSelected(sequencing.controlMode.choice); - dlg.forwarOnlyCheckBox - .setSelected(sequencing.controlMode.forwardOnly); - dlg.choiceExitCheckBox - .setSelected(sequencing.controlMode.choiceExit); - } else { - dlg.flowCheckBox.setSelected(false); - dlg.choiceCheckBox.setSelected(true); - dlg.forwarOnlyCheckBox.setSelected(false); - dlg.choiceExitCheckBox.setSelected(true); - } + if (sequencing != null && sequencing.controlMode != null) { + flowCheckBox.setSelected(sequencing.controlMode.flow); + choiceCheckBox.setSelected(sequencing.controlMode.choice); + forwarOnlyCheckBox.setSelected(sequencing.controlMode.forwardOnly); + choiceExitCheckBox.setSelected(sequencing.controlMode.choiceExit); + } else { + flowCheckBox.setSelected(false); + choiceCheckBox.setSelected(true); + forwarOnlyCheckBox.setSelected(false); + choiceExitCheckBox.setSelected(true); } + } - @Override - protected void saveChanges() { - ChapterPropertiestsDlg dlg = (ChapterPropertiestsDlg) obj; + @Override + protected void saveChanges() { + manifestItem.setTitle(titleTextField.getText()); - manifestItem.setTitle(dlg.titleTextField.getText()); + Sequencing sequencing = null; + if (manifestItem.getClass() == Item.class) { + sequencing = ((Item) manifestItem).sequencing; - Sequencing sequencing = null; - if (manifestItem.getClass() == Item.class) { - sequencing = ((Item) manifestItem).sequencing; + if (sequencing == null) { + sequencing = new Sequencing(); + ((Item) manifestItem).sequencing = sequencing; + } + } - if (sequencing == null) { - sequencing = new Sequencing(); - ((Item) manifestItem).sequencing = sequencing; - } - } + if (manifestItem.getClass() == Organization.class) { + sequencing = ((Organization) manifestItem).sequencing; + if (sequencing == null) { + sequencing = new Sequencing(); + ((Organization) manifestItem).sequencing = sequencing; + } + } - if (manifestItem.getClass() == Organization.class) { - sequencing = ((Organization) manifestItem).sequencing; - if (sequencing == null) { - sequencing = new Sequencing(); - ((Organization) manifestItem).sequencing = sequencing; - } - } + if (sequencing.controlMode == null) { + sequencing.controlMode = new ControlMode(); + } - if (sequencing.controlMode == null) { - sequencing.controlMode = new ControlMode(); - } + sequencing.controlMode.flow = flowCheckBox.isSelected(); + sequencing.controlMode.choice = choiceCheckBox.isSelected(); + sequencing.controlMode.forwardOnly = forwarOnlyCheckBox.isSelected(); + sequencing.controlMode.choiceExit = choiceExitCheckBox.isSelected(); - sequencing.controlMode.flow = dlg.flowCheckBox.isSelected(); - sequencing.controlMode.choice = dlg.choiceCheckBox.isSelected(); - sequencing.controlMode.forwardOnly = dlg.forwarOnlyCheckBox - .isSelected(); - sequencing.controlMode.choiceExit = dlg.choiceExitCheckBox.isSelected(); + setVisible(false); - obj.setVisible(false); - - ((ResourcedItemModel) ItemModels.getModelFromItem(manifestItem)) - .updateItemResource(manifestItem, true); - } + ((ResourcedItemModel) ItemModels.getModelFromItem(manifestItem)) + .updateItemResource(manifestItem, true); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-20 15:54:30 UTC (rev 147) @@ -52,12 +52,6 @@ private MultiLineTableCellEditor multiLineTableCellEditor = new MultiLineTableCellEditor(); private PartAttributesCellEditor partAttributesCellEditor = new PartAttributesCellEditor(); - public CompileQPropertiestsDlg() { - obj = this; - - initComponents(); - } - @Override public void actionPerformed(ActionEvent arg0) { super.actionPerformed(arg0); @@ -168,28 +162,27 @@ @Override protected void fillFields() { - CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; - dlg.titleTextField.setText(manifestItem.getTitle()); + titleTextField.setText(manifestItem.getTitle()); CompileQModel itemModel = new CompileQModel(); - dlg.captionTextField.setText(itemModel.getData(manifestItem) + captionTextField.setText(itemModel.getData(manifestItem) .getCaption()); - dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() - .equals(dlg.captionTextField.getText())); + sameAsTitleCheckBox.setSelected(titleTextField.getText() + .equals(captionTextField.getText())); - dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); + compileQTableDataModel = itemModel.getData(manifestItem).getParts(); - dlg.programmingLanguage.addItem("Any"); - dlg.programmingLanguage.addItem("C++"); - dlg.programmingLanguage.addItem("Pascal"); + programmingLanguage.addItem("Any"); + programmingLanguage.addItem("C++"); + programmingLanguage.addItem("Pascal"); - dlg.programmingLanguage.setSelectedItem(itemModel.getData(manifestItem).getLanguge()); + programmingLanguage.setSelectedItem(itemModel.getData(manifestItem).getLanguge()); - dlg.partsTable.setModel(dlg.compileQTableDataModel); + partsTable.setModel(compileQTableDataModel); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) partsTable .getColumnModel(); columnModel.getColumn(1).setCellEditor(multiLineTableCellEditor); @@ -205,7 +198,7 @@ columnModel.getColumn(2).setMinWidth(100); columnModel.getColumn(2).setResizable(false); - dlg.titleTextField.selectAll(); + titleTextField.selectAll(); } @Override @@ -217,7 +210,7 @@ partsTable.getModel().setValueAt(text, selectedRow, 1); } - private void initComponents() { + protected void initComponents() { setTitle("Propertiests..."); generalPanel = new javax.swing.JPanel(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/LecturePropertiestsDlg.java 2008-05-20 15:54:30 UTC (rev 147) @@ -49,13 +49,6 @@ private JLabel titleLabel; - /** Creates new form NewJFrame */ - public LecturePropertiestsDlg() { - obj = this; - - initComponents(); - } - @Override public void actionPerformed(ActionEvent arg0) { super.actionPerformed(arg0); @@ -69,7 +62,7 @@ } } - private void initComponents() { + protected void initComponents() { setTitle("Propertiests..."); titlePanel = new javax.swing.JPanel(); titleLabel = new JLabel("Title"); @@ -380,21 +373,20 @@ @Override protected void fillFields() { - LecturePropertiestsDlg dlg = (LecturePropertiestsDlg) obj; LectureModel model = new LectureModel(); String title = manifestItem.getTitle(); String caption = ((LectureData) model.getItemData(manifestItem)) .getCaption(); - dlg.sameAsTitleCheckbox.setSelected(title.equals(caption)); + sameAsTitleCheckbox.setSelected(title.equals(caption)); - dlg.titleTextField.setText(title); - dlg.titleTextField.selectAll(); + titleTextField.setText(title); + titleTextField.selectAll(); - dlg.captionTextField.setText(caption); + captionTextField.setText(caption); - dlg.contentEditorPane.setText(((LectureData) model + contentEditorPane.setText(((LectureData) model .getItemData(manifestItem)).getContent()); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/PropertyDlg.java 2008-05-20 15:54:30 UTC (rev 147) @@ -15,24 +15,28 @@ */ private static final long serialVersionUID = -6002603750731392120L; + public PropertyDlg(){ + initComponents(); + } + protected void editTextFieldInHtmlEditor(JTextComponent textComponent) { WebEditor.instance.htmlEdit(textComponent, this); } + + protected abstract void initComponents(); @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == okButton) { saveChanges(); - obj.setVisible(false); + setVisible(false); } if (e.getSource() == cancelButton) { - obj.setVisible(false); + setVisible(false); } } - protected PropertyDlg obj; - protected TreeItem manifestItem; protected abstract void saveChanges(); @@ -45,10 +49,10 @@ public void showDialog(TreeItem item) { manifestItem = item; - obj.fillFields(); + fillFields(); - obj.setModal(true); - obj.setVisible(true); + setModal(true); + setVisible(true); } public void editedHtmlTextWasSet() { Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-20 15:54:30 UTC (rev 147) @@ -45,12 +45,6 @@ private javax.swing.JTextField currentAnswerVariant; - public SimpleQuestionPropertiestsDlg() { - obj = this; - - initComponents(); - } - @Override public void actionPerformed(ActionEvent arg0) { super.actionPerformed(arg0); @@ -132,29 +126,28 @@ @Override protected void fillFields() { - SimpleQuestionPropertiestsDlg dlg = (SimpleQuestionPropertiestsDlg) obj; - dlg.titleTextField.setText(manifestItem.getTitle()); + titleTextField.setText(manifestItem.getTitle()); SimpleQuestionModel itemModel = new SimpleQuestionModel(); - dlg.captionTextField.setText(itemModel.getData(manifestItem) + captionTextField.setText(itemModel.getData(manifestItem) .getCaption()); - dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() - .equals(dlg.captionTextField.getText())); - dlg.questionTextField.setText(itemModel.getData(manifestItem) + sameAsTitleCheckBox.setSelected(titleTextField.getText() + .equals(captionTextField.getText())); + questionTextField.setText(itemModel.getData(manifestItem) .getQuestion()); - dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) + simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) .getAnswers(); - dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); + answersTable.setModel(simpleQuestionAnswersDataModel); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.answersTable + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) answersTable .getColumnModel(); columnModel.getColumn(0).setPreferredWidth(1); columnModel.getColumn(1).setPreferredWidth(300); columnModel.getColumn(2).setPreferredWidth(1); - dlg.titleTextField.selectAll(); + titleTextField.selectAll(); } @Override @@ -166,7 +159,7 @@ answersTable.getModel().setValueAt(text, selectedRow, 1); } - private void initComponents() { + protected void initComponents() { setTitle("Propertiests..."); generalPanel = new javax.swing.JPanel(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -17,6 +17,8 @@ super(); modelName = "ChapterModel"; isContainerItem = true; + + registerConfigDlg(new ChapterPropertiestsDlg()); } @Override @@ -32,13 +34,6 @@ } @Override - public void ConfigureItem(TreeItem item) { - new ChapterPropertiestsDlg().showDialog(item); - - TreeDataModel.getInstance().treeNodesChanged(item); - } - - @Override protected ItemData createItemDataInstance() { return new ChapterItemData(); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -6,13 +6,13 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; import edu.lnu.FireFly.WebEditor.ItemModels.Template; public class CompileQModel extends ResourcedItemModel { + @Override protected String getDefaultTitle() { return "New compile question"; @@ -30,6 +30,7 @@ public CompileQModel() { modelName = "CompileQModel"; + registerConfigDlg(new CompileQPropertiestsDlg()); } @Override @@ -44,16 +45,6 @@ return false; } - @Override - public void ConfigureItem(TreeItem item) { - new CompileQPropertiestsDlg().showDialog(item); - - TreeDataModel.getInstance().treeNodesChanged(item); - WebEditor.tree.setSelectionPath(null); - WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() - .getItemPath(item)); - } - public CompileQData getData(TreeItem item) { return ((CompileQData) getItemData(item)); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -17,6 +17,7 @@ import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public abstract class ItemModel { @@ -32,6 +33,8 @@ protected boolean isContainerItem = false; + private PropertyDlg propertyDlg = null; + public final boolean getShowOnSummaryPage(TreeItem anItem) { if (this.getClass() == SummaryPageModel.class){ return false; @@ -71,9 +74,24 @@ public abstract boolean canAddToItem(TreeItem parent); public abstract boolean canConvertItem(TreeItem parent); + + public final void ConfigureItem(TreeItem item) { + if (propertyDlg != null){ + propertyDlg.showDialog(item); + } - public abstract void ConfigureItem(TreeItem item); +// In SimpleQModel +// WebEditor.tree.setSelectionPath(null); +// WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() +// .getItemPath(item)); + TreeDataModel.getInstance().treeNodesChanged(item); + } + + public final void registerConfigDlg(PropertyDlg dlg){ + this.propertyDlg = dlg; + } + protected String createNewResource() { if (modelHasResource()){ Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -4,7 +4,6 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.LecturePropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; @@ -33,6 +32,7 @@ public LectureModel() { modelName = "LectureModel"; + registerConfigDlg(new LecturePropertiestsDlg()); } @Override @@ -47,17 +47,6 @@ return false; } - @Override - public void ConfigureItem(TreeItem item) { - new LecturePropertiestsDlg().showDialog(item); - TreeDataModel.getInstance().treeNodesChanged(item); - WebEditor.tree.setSelectionPath(null); - WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() - .getItemPath(item)); - - TreeDataModel.getInstance().treeNodesChanged(item); - } - private LectureData getData(TreeItem item) { return (LectureData) getItemData(item); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -6,7 +6,6 @@ import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; -import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.SimpleQuestionPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; @@ -30,6 +29,7 @@ public SimpleQuestionModel() { modelName = "SimpleQuestionModel"; + registerConfigDlg(new SimpleQuestionPropertiestsDlg()); } @Override @@ -44,15 +44,6 @@ return false; } - @Override - public void ConfigureItem(TreeItem item) { - new SimpleQuestionPropertiestsDlg().showDialog(item); - TreeDataModel.getInstance().treeNodesChanged(item); - WebEditor.tree.setSelectionPath(null); - WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() - .getItemPath(item)); - } - public SimpleQuestionData getData(TreeItem item) { return ((SimpleQuestionData) getItemData(item)); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -84,11 +84,6 @@ } @Override - public void ConfigureItem(TreeItem item) { - // Currently this model doesn't configurable. - } - - @Override public boolean canAddToItem(TreeItem parent) { // It can be added to any item because it must generated automatically. return false; Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-19 21:30:10 UTC (rev 146) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-20 15:54:30 UTC (rev 147) @@ -7,11 +7,6 @@ public class UnknownItemModel extends ItemModel { @Override - public void ConfigureItem(TreeItem item) { - System.out.println("Can't doing this operation with unknown item model"); - } - - @Override public void addItem(TreeItem parent) { System.out.println("Can't doing this operation with unknown item model"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-19 21:35:49
|
Revision: 146 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=146&view=rev Author: sem62 Date: 2008-05-19 14:30:10 -0700 (Mon, 19 May 2008) Log Message: ----------- * added template for cimpileQ model * Moved all logic for tree into new class CourseTree Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java WebEditor/template/CompileQModel.html WebEditor/template/global/compileQ.js Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-18 17:35:26 UTC (rev 145) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/AppletWithApiHandle.java 2008-05-19 21:30:10 UTC (rev 146) @@ -9,58 +9,59 @@ */ public class AppletWithApiHandle extends JApplet { /** - * - */ - private static final long serialVersionUID = 5396705469025038804L; - public static boolean initialized = false; + * + */ + private static final long serialVersionUID = 5396705469025038804L; + public static boolean initialized = false; public static boolean terminated = false; - static public String Initialize(String parameter){ - System.out.print("Initialize(" + parameter + ");\n"); - return "true"; + static public String Initialize(String parameter) { + System.out.print("Initialize(" + parameter + ");\n"); + return "true"; } - static public String Terminate(String parameter){ - System.out.print("Terminate(" + parameter + ");\n"); - return "true"; + static public String Terminate(String parameter) { + System.out.print("Terminate(" + parameter + ");\n"); + return "true"; } - static public String GetValue(String parameter){ - System.out.print("GetValue(" + parameter + ");\n"); - - if (parameter.endsWith("completionStatus")){ - return "incomplete"; - } - - return "6"; + static public String GetValue(String parameter) { + System.out.print("GetValue(" + parameter + ");\n"); + + if (parameter.endsWith("completionStatus")) { + return "incomplete"; + } + + return "6"; } - static public boolean SetValue(String parameter, String value){ - System.out.print("SetValue(" + parameter + ", " + value + ");\n"); - return true; + static public boolean SetValue(String parameter, String value) { + System.out.print("SetValue(" + parameter + ", " + value + ");\n"); + return true; } - static public String Commit(String parameter){ - System.out.print("Commit(" + parameter + ");\n"); - return "true"; + static public String Commit(String parameter) { + System.out.print("Commit(" + parameter + ");\n"); + return "true"; } - static public int GetLastError(){ - System.out.print("GetLastError();\n"); - return 0; + static public int GetLastError() { + System.out.print("GetLastError();\n"); + return 0; } - static public String GetErrorString(String parameter){ - int code = Integer.parseInt(parameter); + static public String GetErrorString(String parameter) { + int code = Integer.parseInt(parameter); - String result = ""; - if (code == 0) result = "No Error"; + String result = ""; + if (code == 0) + result = "No Error"; - return result; + return result; } - static public String GetDiagnostic(String parameter){ - System.out.print("GetDiagnostic(" + parameter + ");\n"); - return ""; + static public String GetDiagnostic(String parameter) { + System.out.print("GetDiagnostic(" + parameter + ");\n"); + return ""; } } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/CourseTree.java 2008-05-19 21:30:10 UTC (rev 146) @@ -0,0 +1,69 @@ +package edu.lnu.FireFly.WebEditor; + +import java.applet.AppletContext; +import java.net.URL; + +import javax.swing.JTree; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; + +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; + +public class CourseTree extends JTree implements TreeSelectionListener { + + /** + * + */ + private static final long serialVersionUID = -8762602746961040949L; + + private AppletContext appletContext; + + public AppletContext getAppletContext() { + return appletContext; + } + + public void setAppletContext(AppletContext appletContext) { + this.appletContext = appletContext; + } + + public CourseTree(TreeDataModel dataModel, AppletContext appletContext) { + this.appletContext = appletContext; + this.addTreeSelectionListener(this); + } + + @Override + public void valueChanged(TreeSelectionEvent e) { + if (e.getNewLeadSelectionPath() == null) { + try { + getAppletContext().showDocument( + new URL(Settings.getInstance().getResourceLocation() + + "/empty.htm"), "ContentFrame"); + System.out.print("browse to empty document.\n"); + Thread.sleep(300); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + return; + } + + if (e.getNewLeadSelectionPath().getLastPathComponent().getClass() == Item.class) { + Item item = (Item) e.getNewLeadSelectionPath() + .getLastPathComponent(); + try { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(item.identifierref); + if (resource != null) { + getAppletContext().showDocument( + new URL(Settings.getInstance().getCourseLocation() + + resource.getFullHref()), "ContentFrame"); + System.out.print("redirected\n"); + } + } catch (Exception exc) { + exc.printStackTrace(); + } + } + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-18 17:35:26 UTC (rev 145) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-19 21:30:10 UTC (rev 146) @@ -1,11 +1,16 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; +import java.util.Iterator; + import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Template; public class CompileQModel extends ResourcedItemModel { @Override @@ -64,29 +69,29 @@ @Override protected void updateResourceFile(TreeItem anItem) { -// Resource resource = WebEditor.instance.getManifest().resources -// .findResourceByIdentifier(((Item) anItem).identifierref); -// -// Template template = new Template(resource.getFullHref(), this); -// -// CompileQData itemData = getData(anItem); -// -// template.setProperty("Caption", itemData.getCaption()); -// template.setProperty("Question", itemData.getQuestion()); -// -// Iterator<CompileQPart> iter = itemData.getAnswers().questionParts -// .iterator(); -// String answers = "\r\nsetSingleVariant(" -// + itemData.getAnswers().getSingleVariant() + ");\r\n"; -// -// while (iter.hasNext()) { -// CompileQPart answer = iter.next(); -// answers += "addAnswer(\"" + answer.getAnswerText().replace("\"", "\\\"") + "\", " -// + answer.getAnswerPoint() + ");" + "\r\n"; -// } -// -// template.setProperty("answers", answers); -// template.updateResource(); + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); + + Template template = new Template(resource.getFullHref(), this); + + CompileQData itemData = getData(anItem); + + template.setProperty("Caption", itemData.getCaption()); + + Iterator<CompileQPart> iter = itemData.getParts().questionParts.iterator(); + String answers = "\r\nsetProgrammingLanguage(\"" + + itemData.getLanguge() + "\");\r\n"; + + while (iter.hasNext()) { + CompileQPart part = iter.next(); + answers += "addPart(\"" + part.getAnswerText().replace("\"", "\\\"") + "\", " + + part.getPartAttributes().isAnswer() + ", " + + part.getPartAttributes().isReadOnly() + ", " + + part.getPartAttributes().isVisible() + ");" + "\r\n"; + } + + template.setProperty("parts", answers); + template.updateResource(); } @Override Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-18 17:35:26 UTC (rev 145) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/Settings.java 2008-05-19 21:30:10 UTC (rev 146) @@ -9,7 +9,7 @@ private long autoSaveInterval = 5 * 60 * 1000; private long nopInterval = 60 * 1000; - public static Settings obj = null; + private static Settings obj = null; public static Settings getInstance(){ Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-18 17:35:26 UTC (rev 145) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-19 21:30:10 UTC (rev 146) @@ -2,22 +2,17 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.net.URL; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTree; -import javax.swing.event.TreeSelectionEvent; -import javax.swing.event.TreeSelectionListener; 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.Parser; import edu.lnu.FireFly.FFManifest.parser.TestDocException; -import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.Data.AutoSaveThread; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; @@ -28,7 +23,7 @@ import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class WebEditor extends AppletWithWYSIWYGEditor implements - ActionListener, TreeSelectionListener { + ActionListener { /** * @@ -115,11 +110,9 @@ CreateNewCourse(); } - tree = new JTree(TreeDataModel.getInstance()); + tree = new CourseTree(TreeDataModel.getInstance(), getAppletContext()); this.add(new JScrollPane(tree)); - tree.addTreeSelectionListener(this); - tree.addMouseListener(new CourseTreePopupMenu()); } @@ -186,38 +179,4 @@ // Install the menu bar in the frame this.setJMenuBar(menuBar); } - - @Override - public void valueChanged(TreeSelectionEvent e) { - if (e.getNewLeadSelectionPath() == null) { - try { - getAppletContext().showDocument( - new URL(Settings.getInstance().getResourceLocation() - + "/empty.htm"), "ContentFrame"); - System.out.print("browse to empty document.\n"); - Thread.sleep(300); - } catch (Exception e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - return; - } - - if (e.getNewLeadSelectionPath().getLastPathComponent().getClass() == Item.class) { - Item item = (Item) e.getNewLeadSelectionPath() - .getLastPathComponent(); - try { - Resource resource = manifest.resources - .findResourceByIdentifier(item.identifierref); - if (resource != null) { - getAppletContext().showDocument( - new URL(Settings.getInstance().getCourseLocation() - + resource.getFullHref()), "ContentFrame"); - System.out.print("redirected\n"); - } - } catch (Exception exc) { - exc.printStackTrace(); - } - } - } } Added: WebEditor/template/CompileQModel.html =================================================================== --- WebEditor/template/CompileQModel.html (rev 0) +++ WebEditor/template/CompileQModel.html 2008-05-19 21:30:10 UTC (rev 146) @@ -0,0 +1,26 @@ +<html> +<head> + <title>title</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> + <script type="text/javascript" src="global/APIWrapper.js"></script> + <script type="text/javascript" src="global/compileQ.js"></script> +</head> + +<body onLoad="Initialize()" onunload="Terminate();"> + <div id="compileQ_caption"> + <!--caption start-->New caption<!--caption end--> + </div> + <div id="compileQ_content"> + <form onsubmit="return checkAnswer(this);"> + <div id="compileQ_part"> + <script language="javascript"> + <!--parts start--> + <!--parts end--> + show(); + </script> + </div> + <input type=submit value="Check"> + </form> + </div> +</body> +</html> \ No newline at end of file Added: WebEditor/template/global/compileQ.js =================================================================== --- WebEditor/template/global/compileQ.js (rev 0) +++ WebEditor/template/global/compileQ.js 2008-05-19 21:30:10 UTC (rev 146) @@ -0,0 +1,38 @@ +var singlepart = false; +var parts = new Array(); + +function setProgrammingLanguage(language){ +} + +function addPart(_text, _ispart, _isReadOnly, _isVisible){ + var part = { + text: _text, + ispart: _ispart, + isReadOnly: _isReadOnly, + isVisible: _isVisible, + id: "part" + parts.length + }; + parts.push(part); +} + +function show(){ + for (i=0; i < parts.length; i++){ + if (parts[i].isVisible){ + document.write("<div name='" + parts[i].id + "' id='" + parts[i].id + "'>"); + if (!parts[i].isReadOnly){ + document.write("<textarea rows='15' cols='60' id='part" + parts[i].id + "' name='part" + parts[i].id + "'>"); + } + document.write(parts[i].text); + if (!parts[i].isReadOnly){ + document.write("</textarea>"); + } + document.write("<div>"); + } + } +} + +function check7Answer(frm){ + Terminate(); + + return false; +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-18 17:35:24
|
Revision: 145 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=145&view=rev Author: sem62 Date: 2008-05-18 10:35:26 -0700 (Sun, 18 May 2008) Log Message: ----------- Normally marshal and unmarshal compileQ propertiests. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/template/CompileQModel.conf Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 17:35:26 UTC (rev 145) @@ -173,16 +173,19 @@ CompileQModel itemModel = new CompileQModel(); - // dlg.captionTextField.setText(itemModel.getData(manifestItem) - // .getCaption()); + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() .equals(dlg.captionTextField.getText())); dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); - + dlg.programmingLanguage.addItem("Any"); dlg.programmingLanguage.addItem("C++"); dlg.programmingLanguage.addItem("Pascal"); + + dlg.programmingLanguage.setSelectedItem(itemModel.getData(manifestItem).getLanguge()); dlg.partsTable.setModel(dlg.compileQTableDataModel); @@ -219,7 +222,8 @@ generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); - programminglanguageLabel = new javax.swing.JLabel("Programming language:"); + programminglanguageLabel = new javax.swing.JLabel( + "Programming language:"); titleTextField = new javax.swing.JTextField(); captionPanel = new javax.swing.JPanel(); captionTextField = new javax.swing.JTextField(); @@ -356,8 +360,7 @@ captionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE - )) + javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap())); oneAnswerCheckBox.setText("Only one correct answer"); @@ -366,47 +369,36 @@ .createTitledBorder("Variants of answer")); jScrollPane1.setViewportView(partsTable); - jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + jScrollPane1 + .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( partsPanel); partsPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout - .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(jPanel4Layout.createSequentialGroup() - .addComponent(moveUpAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(moveDownAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(insertAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(deleteAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(editAnswerVariantInHtmlEditor) - .addContainerGap() - ) - .addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE) - .addContainerGap() - ) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addComponent(programminglanguageLabel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE - ) - .addContainerGap(10, 10) - .addComponent(programmingLanguage, 118, 118, 118) - .addContainerGap() - ) - ); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup().addComponent( + moveUpAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10).addComponent( + insertAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn).addContainerGap( + 10, 10).addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap()).addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(programminglanguageLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(10, 10).addComponent( + programmingLanguage, 118, 118, 118) + .addContainerGap())); jPanel4Layout .setVerticalGroup(jPanel4Layout @@ -420,16 +412,20 @@ jPanel4Layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) - .addGroup( - jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(programminglanguageLabel, - 20, 20, 20) - .addComponent(programmingLanguage, - 20, 20, 20) - ) - ) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + programminglanguageLabel, + 20, + 20, + 20) + .addComponent( + programmingLanguage, + 20, + 20, + 20))) .addContainerGap(10, 10) .addComponent( jScrollPane1, @@ -558,6 +554,7 @@ } data.setParts(compileQTableDataModel); + data.setLanguge(programmingLanguage.getSelectedItem().toString()); itemModel.updateItemResource(manifestItem, true); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-18 17:35:26 UTC (rev 145) @@ -1,44 +1,47 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; import java.io.Reader; +import java.util.Iterator; +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; + import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; public class CompileQData extends ItemData { @Override public String marshal(TreeItem anItem) { - return ""; + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("CompileQuestion"); + root.addElement("caption").setText(getCaption()); - // Document doc = DocumentHelper.createDocument(); -// Element root = doc.addElement("SimpleQuestion"); -// root.addElement("caption").setText(getCaption()); -// root.addElement("question").setText(getQuestion()); -// -// root.addElement("ShowOnSummaryPage").setText( -// String.valueOf(getShowOnSummaryPage())); -// -// Element ans = root.addElement("answers"); -// -// ans.addAttribute("singleVariant", String.valueOf(getAnswers() -// .getSingleVariant())); -// -// Iterator<CompileQPart> iter = getAnswers().answers.iterator(); -// -// while (iter.hasNext()) { -// CompileQPart answer = iter.next(); -// -// Element ansEl = ans.addElement("answer"); -// ansEl -// .addAttribute("point", String.valueOf(answer -// .getAnswerPoint())); -// ansEl.setText(answer.getAnswerText()); -// } -// -// return doc.asXML(); + root.addElement("ShowOnSummaryPage").setText(String.valueOf(getShowOnSummaryPage())); + + Element parts = root.addElement("parts"); + + parts.addAttribute("language", String.valueOf(getLanguge())); + + Iterator<CompileQPart> iter = getParts().questionParts.iterator(); + + while (iter.hasNext()) { + CompileQPart part = iter.next(); + + Element partElement = parts.addElement("part"); + partElement.addAttribute("isAnswer", String.valueOf(part.getPartAttributes().isAnswer())); + partElement.addAttribute("isReadOnly", String.valueOf(part.getPartAttributes().isReadOnly())); + partElement.addAttribute("isVivsble", String.valueOf(part.getPartAttributes().isVisible())); + + partElement.setText(part.getAnswerText()); + } + + return doc.asXML(); } private String caption = ""; + private String languge = "Any"; public String getCaption() { return caption; @@ -53,42 +56,40 @@ @SuppressWarnings("unchecked") public boolean unmarshal(Reader res, TreeItem anItem) { -// SAXReader reader = new SAXReader(); -// -// Document doc = null; -// try { -// doc = reader.read(res); -// -// Element root = doc.getRootElement(); -// Element answers = root.element("answers"); -// -// setCaption(root.elementTextTrim("caption")); -// setQuestion(root.elementTextTrim("question")); -// -// boolean showOnSP = Boolean.valueOf(root -// .elementTextTrim("ShowOnSummaryPage")); -// setShowOnSummaryPage(showOnSP); -// -// getAnswers().setSingleVariant( -// answers.attributeValue("singleVariant").equalsIgnoreCase( -// "true")); -// -// getAnswers().answers.clear(); -// -// Iterator<Element> iter = answers.elementIterator("answer"); -// while (iter.hasNext()) { -// Element answer = iter.next(); -// CompileQPart ans = new CompileQPart(answer -// .getText()); -// ans.setAnswerPoint(Double.valueOf(answer -// .attributeValue("point"))); -// getAnswers().answers.add(ans); -// } -// } catch (Exception e) { -// e.printStackTrace(); -// return false; -// } -// + SAXReader reader = new SAXReader(); + + Document doc = null; + try { + doc = reader.read(res); + + Element root = doc.getRootElement(); + Element answers = root.element("parts"); + + setCaption(root.elementTextTrim("caption")); + + boolean showOnSP = Boolean.valueOf(root.elementTextTrim("ShowOnSummaryPage")); + setShowOnSummaryPage(showOnSP); + + setLanguge(answers.attributeValue("language")); + + getParts().questionParts.clear(); + + Iterator<Element> iter = answers.elementIterator("part"); + while (iter.hasNext()) { + Element partElement = iter.next(); + CompileQPart part = new CompileQPart(partElement.getText()); + + part.getPartAttributes().setAnswer(partElement.attributeValue("isAnswer").equalsIgnoreCase("true")); + part.getPartAttributes().setReadOnly(partElement.attributeValue("isReadOnly").equalsIgnoreCase("true")); + part.getPartAttributes().setVisible(partElement.attributeValue("isVivsble").equalsIgnoreCase("true")); + + getParts().questionParts.add(part); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + return true; } @@ -99,4 +100,12 @@ public void setParts(CompileQPartsTableModel parts) { this.parts = parts; } + + public String getLanguge() { + return languge; + } + + public void setLanguge(String languge) { + this.languge = languge; + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-18 17:35:26 UTC (rev 145) @@ -9,7 +9,6 @@ private static final long serialVersionUID = 1L; private String answerText = ""; - private double answerPoint = 0; private PartAttributes partAttributes = new PartAttributes(); @@ -25,18 +24,10 @@ this.answerText = answerText; } - public double getAnswerPoint() { - return answerPoint; - } - public String getAnswerText() { return answerText; } - public void setAnswerPoint(double answerPoint) { - this.answerPoint = answerPoint; - } - public void setAnswerText(String answerText) { this.answerText = answerText; } Modified: WebEditor/template/CompileQModel.conf =================================================================== --- WebEditor/template/CompileQModel.conf 2008-05-18 15:27:58 UTC (rev 144) +++ WebEditor/template/CompileQModel.conf 2008-05-18 17:35:26 UTC (rev 145) @@ -1,10 +1,2 @@ -<?xml version="1.0" encoding="UTF-8"?> -<SimpleQuestion> -<caption>New simple question</caption> -<question>Answer "Yes" to question, please.</question> -<ShowOnSummaryPage>true</ShowOnSummaryPage> -<answers singleVariant="false"> -<answer point="0.0">Yes</answer> -<answer point="1.0">No</answer> -</answers> -</SimpleQuestion> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<CompileQuestion><caption>New compile question</caption><ShowOnSummaryPage>false</ShowOnSummaryPage><parts language="null"><part isAnswer="false" isReadOnly="true" isVivsble="true">Please write program.</part><part isAnswer="true" isReadOnly="false" isVivsble="true">...</part></parts></CompileQuestion> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-18 15:27:56
|
Revision: 144 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=144&view=rev Author: sem62 Date: 2008-05-18 08:27:58 -0700 (Sun, 18 May 2008) Log Message: ----------- deleted unnecessary files Removed Paths: ------------- WebEditor/resources/spaw2/uploads/files/180px-UniwersytetJanaKazimierzaLw?\208?\147_w1.jpg WebEditor/resources/spaw2/uploads/files/banner.GIF Property Changed: ---------------- WebEditor/ Property changes on: WebEditor ___________________________________________________________________ Name: svn:ignore - *.classpath *.project + *.classpath *.project .settings Deleted: WebEditor/resources/spaw2/uploads/files/180px-UniwersytetJanaKazimierzaLw?\208?\147_w1.jpg =================================================================== (Binary files differ) Deleted: WebEditor/resources/spaw2/uploads/files/banner.GIF =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-18 15:05:01
|
Revision: 143 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=143&view=rev Author: sem62 Date: 2008-05-18 08:05:01 -0700 (Sun, 18 May 2008) Log Message: ----------- Full designed CompileQPropertyDlg Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 15:05:01 UTC (rev 143) @@ -4,6 +4,8 @@ import java.awt.event.ActionListener; import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.ScrollPaneConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; @@ -25,7 +27,9 @@ private javax.swing.JCheckBox sameAsTitleCheckBox; private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JComboBox programmingLanguage; private javax.swing.JLabel titleLabel; + private javax.swing.JLabel programminglanguageLabel; private javax.swing.JPanel generalPanel; private javax.swing.JPanel captionPanel; private javax.swing.JPanel partsPanel; @@ -175,20 +179,29 @@ .equals(dlg.captionTextField.getText())); dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); + + dlg.programmingLanguage.addItem("Any"); + dlg.programmingLanguage.addItem("C++"); + dlg.programmingLanguage.addItem("Pascal"); dlg.partsTable.setModel(dlg.compileQTableDataModel); - partsTable.getColumnModel().getColumn(1).setCellEditor( - multiLineTableCellEditor); - partsTable.getColumnModel().getColumn(2).setCellEditor( - partAttributesCellEditor); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable .getColumnModel(); - columnModel.getColumn(0).setPreferredWidth(1); - columnModel.getColumn(1).setPreferredWidth(300); - columnModel.getColumn(2).setPreferredWidth(1); + columnModel.getColumn(1).setCellEditor(multiLineTableCellEditor); + columnModel.getColumn(2).setCellEditor(partAttributesCellEditor); + + columnModel.getColumn(0).setMaxWidth(20); + columnModel.getColumn(0).setMinWidth(20); + columnModel.getColumn(0).setResizable(false); + + columnModel.getColumn(1).setResizable(true); + + columnModel.getColumn(2).setMaxWidth(100); + columnModel.getColumn(2).setMinWidth(100); + columnModel.getColumn(2).setResizable(false); + dlg.titleTextField.selectAll(); } @@ -206,6 +219,7 @@ generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); + programminglanguageLabel = new javax.swing.JLabel("Programming language:"); titleTextField = new javax.swing.JTextField(); captionPanel = new javax.swing.JPanel(); captionTextField = new javax.swing.JTextField(); @@ -221,6 +235,7 @@ editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); insertAnswerVariantBtn = new JButton("Insert"); deleteAnswerVariantBtn = new JButton("Delete"); + programmingLanguage = new JComboBox(); moveDownAnswerVariantBtn = new JButton("Down"); moveUpAnswerVariantBtn = new JButton("Up"); @@ -341,7 +356,8 @@ captionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)) + javax.swing.GroupLayout.PREFERRED_SIZE + )) .addContainerGap())); oneAnswerCheckBox.setText("Only one correct answer"); @@ -350,25 +366,47 @@ .createTitledBorder("Variants of answer")); jScrollPane1.setViewportView(partsTable); + jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( partsPanel); partsPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.TRAILING).addGroup( - jPanel4Layout.createSequentialGroup().addComponent( - moveUpAnswerVariantBtn).addContainerGap(10, 10) - .addComponent(moveDownAnswerVariantBtn) - .addContainerGap(10, 10).addComponent( - insertAnswerVariantBtn).addContainerGap(10, 10) - .addComponent(deleteAnswerVariantBtn).addContainerGap( - 10, 10).addComponent( - editAnswerVariantInHtmlEditor) - .addContainerGap()).addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout + .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(jPanel4Layout.createSequentialGroup() + .addComponent(moveUpAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(insertAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(editAnswerVariantInHtmlEditor) + .addContainerGap() + ) + .addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE) + .addContainerGap() + ) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent(programminglanguageLabel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE + ) + .addContainerGap(10, 10) + .addComponent(programmingLanguage, 118, 118, 118) + .addContainerGap() + ) + ); jPanel4Layout .setVerticalGroup(jPanel4Layout @@ -377,7 +415,22 @@ .addGroup( jPanel4Layout .createSequentialGroup() - .addContainerGap() + .addContainerGap(10, 10) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(programminglanguageLabel, + 20, 20, 20) + .addComponent(programmingLanguage, + 20, 20, 20) + ) + ) + .addContainerGap(10, 10) .addComponent( jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumber.java 2008-05-18 15:05:01 UTC (rev 143) @@ -0,0 +1,21 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +public class PartNumber { + private int number = 0; + + public PartNumber(){ + + } + + public PartNumber(int aNumber){ + number = aNumber; + } + + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartNumberCellRenderer.java 2008-05-18 15:05:01 UTC (rev 143) @@ -0,0 +1,32 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Color; +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.table.TableCellRenderer; + +public class PartNumberCellRenderer extends JLabel implements + TableCellRenderer { + + /** + * + */ + private static final long serialVersionUID = 1L; + + public PartNumberCellRenderer() { + setOpaque(true); + } + + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + this.setBackground((Color)UIManager.getDefaults().get("Label.background")); + this.setForeground((Color)UIManager.getDefaults().get("Label.foreground")); + + setText((value == null) ? "" : String.valueOf(((PartNumber)value).getNumber())); + return this; + } +} \ No newline at end of file Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-18 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-18 15:05:01 UTC (rev 143) @@ -17,5 +17,6 @@ setDefaultRenderer(CompileQPart.class, new MultiLineCellRenderer()); setDefaultRenderer(PartAttributes.class, new PartAttributesRenderer()); + setDefaultRenderer(PartNumber.class, new PartNumberCellRenderer()); } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-18 13:47:32 UTC (rev 142) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-18 15:05:01 UTC (rev 143) @@ -5,151 +5,152 @@ import javax.swing.table.DefaultTableModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.PartNumber; + public class CompileQPartsTableModel extends DefaultTableModel { - /** - * - */ - private static final long serialVersionUID = 1L; + /** + * + */ + private static final long serialVersionUID = 1L; - public List<CompileQPart> questionParts = new ArrayList<CompileQPart>(); + public List<CompileQPart> questionParts = new ArrayList<CompileQPart>(); - @Override - public Class<?> getColumnClass(int col) { - if (col == 1){ - return CompileQPart.class; - } - - if (col == 2){ - return PartAttributes.class; - } - - return Object.class; + @Override + public Class<?> getColumnClass(int col) { + switch (col) { + case 0: + return PartNumber.class; + case 1: + return CompileQPart.class; + case 2: + return PartAttributes.class; + default: + return Object.class; } + } - @Override - public int getColumnCount() { - return 3; + @Override + public int getColumnCount() { + return 3; + } + + @Override + public String getColumnName(int arg0) { + switch (arg0) { + case 0: + return "#"; + case 1: + return "Part content"; + default: + return "Options"; } + } - @Override - public String getColumnName(int arg0) { - switch (arg0) { - case 0: - return "#"; - case 1: - return "Part content"; - default: - return "Options"; - } + @Override + public int getRowCount() { + + if (questionParts == null) { + return 0; } - @Override - public int getRowCount() { + int answersCount = questionParts.size(); - if (questionParts == null) { - return 0; - } + return answersCount > 0 ? answersCount : 1; + } - int answersCount = questionParts.size(); - - - - return answersCount > 0 ? answersCount : 1; + @Override + public Object getValueAt(int row, int col) { + if (row == questionParts.size()) { + return null; } - @Override - public Object getValueAt(int row, int col) { - if (row == questionParts.size()) { - return null; - } + switch (col) { + case 0: + return new PartNumber(row + 1); + case 1: + return questionParts.get(row); + case 2: + return questionParts.get(row).getPartAttributes(); + default: + return null; + } + } - switch (col) { - case 0: - return row + 1; - case 1: - return questionParts.get(row); - case 2: - return questionParts.get(row).getPartAttributes(); - default: - return null; - } + @Override + public boolean isCellEditable(int row, int col) { + switch (col) { + case 0: + return false; + case 1: + return true; + case 2: + return true; + default: + return false; } + } - @Override - public boolean isCellEditable(int row, int col) { - switch (col){ - case 0: - return false; - case 1: - return true; - case 2: - return true; - default: - return false; - } + @Override + public void setValueAt(Object value, int row, int col) { + if (row == questionParts.size()) { + questionParts.add(new CompileQPart("")); } - @Override - public void setValueAt(Object value, int row, int col) { - if (row == questionParts.size()) { - questionParts.add(new CompileQPart("")); - } + String newValue = value.toString(); - String newValue = value.toString(); + switch (col) { + case 1: + questionParts.get(row).setAnswerText(newValue); + break; + case 2: + questionParts.get(row).setPartAttributes((PartAttributes) value); + break; + } - switch (col) { - case 1: - questionParts.get(row).setAnswerText(newValue); - break; - case 2: - questionParts.get(row).setPartAttributes((PartAttributes)value); - break; - } + fireTableRowsUpdated(row, row); + } - fireTableRowsUpdated(row, row); + public void deleteRow(int selectedRow) { + if (selectedRow < questionParts.size() && selectedRow >= 0) { + questionParts.remove(selectedRow); + fireTableRowsDeleted(selectedRow, selectedRow); } + } - public void deleteRow(int selectedRow) { - if (selectedRow < questionParts.size() && selectedRow >= 0) { - questionParts.remove(selectedRow); - fireTableRowsDeleted(selectedRow, selectedRow); - } + public void insertRow(int selectedRow) { + if (selectedRow >= questionParts.size()) { + selectedRow--; } - public void insertRow(int selectedRow) { - if (selectedRow >= questionParts.size()){ - selectedRow--; - } - - questionParts.add(selectedRow + 1, new CompileQPart("")); - fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + questionParts.add(selectedRow + 1, new CompileQPart("")); + fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + } + + public boolean moveUp(int selectedRow) { + if (selectedRow < 1 || selectedRow >= questionParts.size()) { + return false; } - public boolean moveUp(int selectedRow) { - if (selectedRow < 1 || selectedRow >= questionParts.size()){ - return false; - } - - CompileQPart answer = questionParts.get(selectedRow); - questionParts.set(selectedRow, questionParts.get(selectedRow - 1)); - questionParts.set(selectedRow - 1, answer); - - fireTableRowsUpdated(selectedRow - 1, selectedRow); - - return true; + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow - 1)); + questionParts.set(selectedRow - 1, answer); + + fireTableRowsUpdated(selectedRow - 1, selectedRow); + + return true; + } + + public boolean moveDown(int selectedRow) { + if (selectedRow < 0 || selectedRow >= questionParts.size() - 1) { + return false; } - public boolean moveDown(int selectedRow) { - if (selectedRow < 0 || selectedRow >= questionParts.size() - 1){ - return false; - } - - CompileQPart answer = questionParts.get(selectedRow); - questionParts.set(selectedRow, questionParts.get(selectedRow + 1)); - questionParts.set(selectedRow + 1, answer); - - fireTableRowsUpdated(selectedRow + 1, selectedRow); - - return true; - } + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow + 1)); + questionParts.set(selectedRow + 1, answer); + + fireTableRowsUpdated(selectedRow + 1, selectedRow); + + return true; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-18 13:47:27
|
Revision: 142 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=142&view=rev Author: sem62 Date: 2008-05-18 06:47:32 -0700 (Sun, 18 May 2008) Log Message: ----------- fixed bugs with table Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 11:46:28 UTC (rev 141) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 13:47:32 UTC (rev 142) @@ -7,6 +7,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; +import javax.swing.table.TableCellEditor; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQData; @@ -18,479 +19,505 @@ * @author Yura */ public class CompileQPropertiestsDlg extends PropertyDlg implements - ActionListener, ChangeListener { + ActionListener, ChangeListener { - private static final long serialVersionUID = 1961383080461718171L; + private static final long serialVersionUID = 1961383080461718171L; - private javax.swing.JCheckBox sameAsTitleCheckBox; - private javax.swing.JCheckBox oneAnswerCheckBox; - private javax.swing.JLabel titleLabel; - private javax.swing.JPanel generalPanel; - private javax.swing.JPanel captionPanel; - private javax.swing.JPanel partsPanel; - private javax.swing.JScrollPane jScrollPane1; - private PartsTable partsTable; - private javax.swing.JTextField titleTextField; - private javax.swing.JTextField captionTextField; - private javax.swing.JTextField questionTextField; - private javax.swing.JButton editCaptionInHtmlBtn; - private javax.swing.JButton editQuestionInHtmlBtn; - private javax.swing.JButton editAnswerVariantInHtmlEditor; - private javax.swing.JButton insertAnswerVariantBtn; - private javax.swing.JButton deleteAnswerVariantBtn; - private javax.swing.JButton moveUpAnswerVariantBtn; - private javax.swing.JButton moveDownAnswerVariantBtn; - private CompileQPartsTableModel simpleQuestionAnswersDataModel; + private javax.swing.JCheckBox sameAsTitleCheckBox; + private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JLabel titleLabel; + private javax.swing.JPanel generalPanel; + private javax.swing.JPanel captionPanel; + private javax.swing.JPanel partsPanel; + private javax.swing.JScrollPane jScrollPane1; + private PartsTable partsTable; + private javax.swing.JTextField titleTextField; + private javax.swing.JTextField captionTextField; + private javax.swing.JTextField questionTextField; + private javax.swing.JButton editCaptionInHtmlBtn; + private javax.swing.JButton editQuestionInHtmlBtn; + private javax.swing.JButton editAnswerVariantInHtmlEditor; + private javax.swing.JButton insertAnswerVariantBtn; + private javax.swing.JButton deleteAnswerVariantBtn; + private javax.swing.JButton moveUpAnswerVariantBtn; + private javax.swing.JButton moveDownAnswerVariantBtn; + private CompileQPartsTableModel compileQTableDataModel; - private javax.swing.JTextField currentAnswerVariant; + private javax.swing.JTextField currentAnswerVariant; - public CompileQPropertiestsDlg() { - obj = this; + private MultiLineTableCellEditor multiLineTableCellEditor = new MultiLineTableCellEditor(); + private PartAttributesCellEditor partAttributesCellEditor = new PartAttributesCellEditor(); - initComponents(); + public CompileQPropertiestsDlg() { + obj = this; + + initComponents(); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + super.actionPerformed(arg0); + + if (arg0.getSource() == editQuestionInHtmlBtn) { + editTextFieldInHtmlEditor(questionTextField); } - @Override - public void actionPerformed(ActionEvent arg0) { - super.actionPerformed(arg0); + if (arg0.getSource() == editCaptionInHtmlBtn) { + editTextFieldInHtmlEditor(captionTextField); + } - if (arg0.getSource() == editQuestionInHtmlBtn) { - editTextFieldInHtmlEditor(questionTextField); - } + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = partsTable.getSelectedRow(); - if (arg0.getSource() == editCaptionInHtmlBtn) { - editTextFieldInHtmlEditor(captionTextField); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == editAnswerVariantInHtmlEditor) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + String text = partsTable.getModel().getValueAt(selectedRow, 1) + .toString(); - if (selectedRow < 0) { - return; - } + currentAnswerVariant.setText(text); - String text = partsTable.getModel().getValueAt(selectedRow, 1) - .toString(); + editTextFieldInHtmlEditor(currentAnswerVariant); + } - currentAnswerVariant.setText(text); + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - editTextFieldInHtmlEditor(currentAnswerVariant); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == insertAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + compileQTableDataModel.insertRow(selectedRow); + partsTable.getSelectionModel().setSelectionInterval( + selectedRow + 1, selectedRow + 1); + } - if (selectedRow < 0) { - return; - } + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - simpleQuestionAnswersDataModel.insertRow(selectedRow); - partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); - } + if (selectedRow < 0) { + return; + } - if (arg0.getSource() == deleteAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + stopCellEditing(); + compileQTableDataModel.deleteRow(selectedRow); - if (selectedRow < 0) { - return; - } + if (selectedRow >= compileQTableDataModel.getRowCount()) { + selectedRow--; + } - simpleQuestionAnswersDataModel.deleteRow(selectedRow); - - if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ - selectedRow--; - } - - partsTable.getSelectionModel().setSelectionInterval(selectedRow, - selectedRow); - } - if (arg0.getSource() == moveUpAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + partsTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - if (selectedRow < 0) { - return; - } + if (selectedRow < 0) { + return; + } - if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ - partsTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); - } - } + stopCellEditing(); + if (compileQTableDataModel.moveUp(selectedRow)) { + partsTable.getSelectionModel().setSelectionInterval( + selectedRow - 1, selectedRow - 1); + } + } - if (arg0.getSource() == moveDownAnswerVariantBtn) { - int selectedRow = partsTable.getSelectedRow(); + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); - if (selectedRow < 0) { - return; - } + if (selectedRow < 0) { + return; + } - if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ - partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); - } + stopCellEditing(); + if (compileQTableDataModel.moveDown(selectedRow)) { + partsTable.getSelectionModel().setSelectionInterval( + selectedRow + 1, selectedRow + 1); + } + } + } + + public boolean stopCellEditing() { + try { + int column = partsTable.getEditingColumn(); + if (column > -1) { + TableCellEditor cellEditor = partsTable.getColumnModel() + .getColumn(column).getCellEditor(); + if (cellEditor == null) { + cellEditor = partsTable.getDefaultEditor(partsTable + .getColumnClass(column)); } + + if (cellEditor != null) { + cellEditor.stopCellEditing(); + } + } + } catch (Exception e) { + return false; } + return true; + } - @Override - protected void fillFields() { - CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; - dlg.titleTextField.setText(manifestItem.getTitle()); + @Override + protected void fillFields() { + CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); - CompileQModel itemModel = new CompileQModel(); + CompileQModel itemModel = new CompileQModel(); -// dlg.captionTextField.setText(itemModel.getData(manifestItem) -// .getCaption()); - dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() - .equals(dlg.captionTextField.getText())); + // dlg.captionTextField.setText(itemModel.getData(manifestItem) + // .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); - dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) - .getParts(); - - dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); + dlg.compileQTableDataModel = itemModel.getData(manifestItem).getParts(); - partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); - partsTable.getColumnModel().getColumn(2).setCellEditor(new PartAttributesCellEditor()); + dlg.partsTable.setModel(dlg.compileQTableDataModel); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable - .getColumnModel(); - columnModel.getColumn(0).setPreferredWidth(1); - columnModel.getColumn(1).setPreferredWidth(300); - columnModel.getColumn(2).setPreferredWidth(1); + partsTable.getColumnModel().getColumn(1).setCellEditor( + multiLineTableCellEditor); + partsTable.getColumnModel().getColumn(2).setCellEditor( + partAttributesCellEditor); - dlg.titleTextField.selectAll(); - } + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable + .getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); - @Override - public void editedHtmlTextWasSet() { - super.editedHtmlTextWasSet(); + dlg.titleTextField.selectAll(); + } - String text = currentAnswerVariant.getText(); - int selectedRow = partsTable.getSelectedRow(); - partsTable.getModel().setValueAt(text, selectedRow, 1); - } + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); - private void initComponents() { - setTitle("Propertiests..."); + String text = currentAnswerVariant.getText(); + int selectedRow = partsTable.getSelectedRow(); + partsTable.getModel().setValueAt(text, selectedRow, 1); + } - generalPanel = new javax.swing.JPanel(); - titleLabel = new javax.swing.JLabel(); - titleTextField = new javax.swing.JTextField(); - captionPanel = new javax.swing.JPanel(); - captionTextField = new javax.swing.JTextField(); - sameAsTitleCheckBox = new javax.swing.JCheckBox(); - questionTextField = new javax.swing.JTextField(); - oneAnswerCheckBox = new javax.swing.JCheckBox(); - partsPanel = new javax.swing.JPanel(); - jScrollPane1 = new javax.swing.JScrollPane(); - cancelButton = new javax.swing.JButton("Cancel"); - okButton = new javax.swing.JButton("Ok"); - editCaptionInHtmlBtn = new JButton("..."); - editQuestionInHtmlBtn = new JButton("..."); - editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); - insertAnswerVariantBtn = new JButton("Insert"); - deleteAnswerVariantBtn = new JButton("Delete"); + private void initComponents() { + setTitle("Propertiests..."); - moveDownAnswerVariantBtn = new JButton("Down"); - moveUpAnswerVariantBtn = new JButton("Up"); + generalPanel = new javax.swing.JPanel(); + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + captionPanel = new javax.swing.JPanel(); + captionTextField = new javax.swing.JTextField(); + sameAsTitleCheckBox = new javax.swing.JCheckBox(); + questionTextField = new javax.swing.JTextField(); + oneAnswerCheckBox = new javax.swing.JCheckBox(); + partsPanel = new javax.swing.JPanel(); + jScrollPane1 = new javax.swing.JScrollPane(); + cancelButton = new javax.swing.JButton("Cancel"); + okButton = new javax.swing.JButton("Ok"); + editCaptionInHtmlBtn = new JButton("..."); + editQuestionInHtmlBtn = new JButton("..."); + editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + insertAnswerVariantBtn = new JButton("Insert"); + deleteAnswerVariantBtn = new JButton("Delete"); - insertAnswerVariantBtn.addActionListener(this); - deleteAnswerVariantBtn.addActionListener(this); - moveDownAnswerVariantBtn.addActionListener(this); - moveUpAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); - currentAnswerVariant = new javax.swing.JTextField(); - captionTextField.addActionListener(this); + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); - cancelButton.addActionListener(this); - okButton.addActionListener(this); - sameAsTitleCheckBox.addChangeListener(this); - oneAnswerCheckBox.addChangeListener(this); - editCaptionInHtmlBtn.addActionListener(this); - editQuestionInHtmlBtn.addActionListener(this); - editAnswerVariantInHtmlEditor.addActionListener(this); + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); - partsTable = new PartsTable(); + cancelButton.addActionListener(this); + okButton.addActionListener(this); + sameAsTitleCheckBox.addChangeListener(this); + oneAnswerCheckBox.addChangeListener(this); + editCaptionInHtmlBtn.addActionListener(this); + editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); - setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); + partsTable = new PartsTable(); - generalPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("General")); - titleLabel.setText("Title"); + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( - generalPanel); - generalPanel.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(titleLabel)).addGroup( - jPanel1Layout.createSequentialGroup().addContainerGap() - .addComponent(titleTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); - jPanel1Layout - .setVerticalGroup(jPanel1Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel1Layout - .createSequentialGroup() - .addComponent(titleLabel) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - titleTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap())); + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("Title"); - captionPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Caption")); - sameAsTitleCheckBox.setText("Some as the title"); + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( + generalPanel); + generalPanel.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleLabel)).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( - captionPanel); - captionPanel.setLayout(jPanel2Layout); - jPanel2Layout - .setHorizontalGroup(jPanel2Layout - .createParallelGroup( + captionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Caption")); + sameAsTitleCheckBox.setText("Some as the title"); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( + captionPanel); + captionPanel.setLayout(jPanel2Layout); + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel2Layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - sameAsTitleCheckBox)) - .addContainerGap(283, Short.MAX_VALUE)) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - jPanel2Layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - captionTextField, - javax.swing.GroupLayout.DEFAULT_SIZE, - 370, Short.MAX_VALUE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - editCaptionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, - 30, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap())); - jPanel2Layout - .setVerticalGroup(jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel2Layout - .createSequentialGroup() - .addComponent(sameAsTitleCheckBox) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup( - jPanel2Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - editCaptionInHtmlBtn, - javax.swing.GroupLayout.PREFERRED_SIZE, - 20, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent( - captionTextField, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap())); + .addComponent( + sameAsTitleCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addComponent(sameAsTitleCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + captionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); - oneAnswerCheckBox.setText("Only one correct answer"); + oneAnswerCheckBox.setText("Only one correct answer"); - partsPanel.setBorder(javax.swing.BorderFactory - .createTitledBorder("Variants of answer")); + partsPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Variants of answer")); - jScrollPane1.setViewportView(partsTable); + jScrollPane1.setViewportView(partsTable); - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( - partsPanel); - partsPanel.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.TRAILING).addGroup( - jPanel4Layout.createSequentialGroup() - .addComponent(moveUpAnswerVariantBtn) + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + partsPanel); + partsPanel.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup().addComponent( + moveUpAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10).addComponent( + insertAnswerVariantBtn).addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn).addContainerGap( + 10, 10).addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 111, Short.MAX_VALUE) .addContainerGap(10, 10) - .addComponent(moveDownAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(insertAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent(deleteAnswerVariantBtn) - .addContainerGap(10, 10) - .addComponent( - editAnswerVariantInHtmlEditor) - .addContainerGap()).addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE).addContainerGap())); + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + moveUpAnswerVariantBtn, + 20, 20, 20) + .addComponent( + moveDownAnswerVariantBtn, + 20, 20, 20) + .addComponent( + insertAnswerVariantBtn, + 20, 20, 20) + .addComponent( + deleteAnswerVariantBtn, + 20, 20, 20) + .addComponent( + editAnswerVariantInHtmlEditor, + 20, 20, 20)) + .addContainerGap())); - jPanel4Layout - .setVerticalGroup(jPanel4Layout - .createParallelGroup( + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - jPanel4Layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, - 111, Short.MAX_VALUE) - .addContainerGap(10, 10) - .addGroup( - jPanel4Layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - moveUpAnswerVariantBtn, - 20, 20, 20) - .addComponent( - moveDownAnswerVariantBtn, - 20, 20, 20) - .addComponent( - insertAnswerVariantBtn, - 20, 20, 20) - .addComponent( - deleteAnswerVariantBtn, - 20, 20, 20) - .addComponent( - editAnswerVariantInHtmlEditor, - 20, 20, 20)) - .addContainerGap())); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout( - getContentPane()); - getContentPane().setLayout(layout); - layout - .setHorizontalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( + .addComponent( + partsPanel, + 600, 600, + Short.MAX_VALUE) + .addComponent( + captionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + generalPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, layout - .createSequentialGroup() - .addContainerGap() - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addComponent( - partsPanel, - 600, - 600, - Short.MAX_VALUE) - .addComponent( - captionPanel, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addComponent( - generalPanel, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE) - .addGroup( - javax.swing.GroupLayout.Alignment.TRAILING, - layout - .createSequentialGroup() - .addComponent( - okButton) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - cancelButton))) - .addContainerGap())); - layout - .setVerticalGroup(layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING) - .addGroup( - layout - .createSequentialGroup() - .addContainerGap() - .addComponent( - generalPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - captionPanel, - javax.swing.GroupLayout.PREFERRED_SIZE, - javax.swing.GroupLayout.DEFAULT_SIZE, - javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent( - partsPanel, - 300, - 300, - 300) - .addPreferredGap( - javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup( - layout - .createParallelGroup( - javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent( - cancelButton, - 20, 20, 20) - .addComponent(okButton, - 20, 20, 20)) - .addContainerGap( - javax.swing.GroupLayout.DEFAULT_SIZE, - Short.MAX_VALUE))); + .createSequentialGroup() + .addComponent( + okButton) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + cancelButton))) + .addContainerGap())); + layout + .setVerticalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + generalPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + captionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(partsPanel, 300, 300, 300) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); - this.getRootPane().setDefaultButton(okButton); + this.getRootPane().setDefaultButton(okButton); - pack(); - } + pack(); + } - @Override - protected void saveChanges() { - CompileQModel itemModel = new CompileQModel(); - - manifestItem.setTitle(titleTextField.getText()); + @Override + protected void saveChanges() { + stopCellEditing(); + CompileQModel itemModel = new CompileQModel(); - CompileQData data = itemModel.getData(manifestItem); + manifestItem.setTitle(titleTextField.getText()); - if (sameAsTitleCheckBox.isSelected()) { - data.setCaption(titleTextField.getText()); - } else { - data.setCaption(captionTextField.getText()); - } + CompileQData data = itemModel.getData(manifestItem); - data.setParts(simpleQuestionAnswersDataModel); - - itemModel.updateItemResource(manifestItem, true); + if (sameAsTitleCheckBox.isSelected()) { + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); } - @Override - public void stateChanged(ChangeEvent e) { - if (e.getSource() == sameAsTitleCheckBox) { - if (sameAsTitleCheckBox.isSelected() - && captionTextField.isEnabled()) { - captionTextField.setText(titleTextField.getText()); - } - captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); - } + data.setParts(compileQTableDataModel); + + itemModel.updateItemResource(manifestItem, true); + } + + @Override + public void stateChanged(ChangeEvent e) { + if (e.getSource() == sameAsTitleCheckBox) { + if (sameAsTitleCheckBox.isSelected() + && captionTextField.isEnabled()) { + captionTextField.setText(titleTextField.getText()); + } + captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); } + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-18 11:46:28 UTC (rev 141) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-18 13:47:32 UTC (rev 142) @@ -1,8 +1,6 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; import java.awt.Component; -import java.awt.event.KeyEvent; -import java.awt.event.KeyListener; import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; @@ -12,22 +10,10 @@ import javax.swing.table.TableCellEditor; public class MultiLineTableCellEditor extends AbstractCellEditor implements - TableCellEditor, KeyListener { - @Override - public void keyPressed(KeyEvent e) { - } + TableCellEditor { - @Override - public void keyReleased(KeyEvent e) { - } - - @Override - public void keyTyped(KeyEvent e) { - -// cellSizeUpdate(false); - } - protected int tableRow; + protected int tableCol; protected JTable table; private void cellSizeUpdate(boolean fullUpdate) { @@ -59,12 +45,10 @@ myEditor.setWrapStyleWord(true); myEditor.setLineWrap(true); myEditor.setOpaque(true); - myEditor.addKeyListener(this); myScrollPane = new JScrollPane(myEditor); myScrollPane.setBorder(BorderFactory.createEmptyBorder()); - myScrollPane - .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + myScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); myScrollPane.getVerticalScrollBar().setFocusable(false); myScrollPane.getHorizontalScrollBar().setFocusable(false); } @@ -73,6 +57,7 @@ boolean isSelected, int row, int column) { this.table = table; this.tableRow = row; + this.tableCol = column; myEditor.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground()); @@ -91,4 +76,12 @@ public Object getCellEditorValue() { return myEditor.getText(); } + + public int getTableRow() { + return tableRow; + } + + public int getTableCol() { + return tableCol; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-18 11:46:24
|
Revision: 141 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=141&view=rev Author: sem62 Date: 2008-05-18 04:46:28 -0700 (Sun, 18 May 2008) Log Message: ----------- Added Renderer and CellEditor for PartAttributes. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesRenderer.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/PartAttributes.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-18 11:46:28 UTC (rev 141) @@ -136,18 +136,18 @@ CompileQModel itemModel = new CompileQModel(); - dlg.captionTextField.setText(itemModel.getData(manifestItem) - .getCaption()); +// dlg.captionTextField.setText(itemModel.getData(manifestItem) +// .getCaption()); dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() .equals(dlg.captionTextField.getText())); - dlg.questionTextField.setText(itemModel.getData(manifestItem) - .getQuestion()); dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) - .getAnswers(); + .getParts(); + dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); + partsTable.getColumnModel().getColumn(2).setCellEditor(new PartAttributesCellEditor()); DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable .getColumnModel(); @@ -477,10 +477,8 @@ data.setCaption(captionTextField.getText()); } - data.setQuestion(questionTextField.getText()); + data.setParts(simpleQuestionAnswersDataModel); - data.setAnswers(simpleQuestionAnswersDataModel); - itemModel.updateItemResource(manifestItem, true); } @@ -493,11 +491,6 @@ } captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); } - - if (e.getSource() == oneAnswerCheckBox) { - simpleQuestionAnswersDataModel.setSingleVariant(oneAnswerCheckBox - .isSelected()); - } } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-18 11:46:28 UTC (rev 141) @@ -1,8 +1,6 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; import java.awt.Component; -import java.awt.event.InputMethodEvent; -import java.awt.event.InputMethodListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; @@ -14,7 +12,7 @@ import javax.swing.table.TableCellEditor; public class MultiLineTableCellEditor extends AbstractCellEditor implements - TableCellEditor, InputMethodListener, KeyListener { + TableCellEditor, KeyListener { @Override public void keyPressed(KeyEvent e) { } @@ -25,31 +23,28 @@ @Override public void keyTyped(KeyEvent e) { - - //cellSizeUpdate(); + +// cellSizeUpdate(false); } protected int tableRow; protected JTable table; - @Override - public void caretPositionChanged(InputMethodEvent arg0) { - cellSizeUpdate(); - } + private void cellSizeUpdate(boolean fullUpdate) { + int needHeight = myEditor.getPreferredSize().height + 2; - private void cellSizeUpdate() { - int thisHeight = myEditor.getPreferredSize().height + 2; - - if (thisHeight < 100){ - thisHeight = 100; + if (needHeight < 100) { + needHeight = 100; } - - table.setRowHeight(tableRow, thisHeight); - } - @Override - public void inputMethodTextChanged(InputMethodEvent arg0) { - cellSizeUpdate(); + if (!fullUpdate) { + int currHeight = table.getRowHeight(tableRow); + if (needHeight < currHeight) { + needHeight = currHeight; + } + } + + table.setRowHeight(tableRow, needHeight); } /** @@ -64,7 +59,6 @@ myEditor.setWrapStyleWord(true); myEditor.setLineWrap(true); myEditor.setOpaque(true); - myEditor.addInputMethodListener(this); myEditor.addKeyListener(this); myScrollPane = new JScrollPane(myEditor); @@ -89,7 +83,7 @@ myScrollPane.setBounds(0, 0, table.getColumnModel().getColumn(column) .getWidth(), 0); - cellSizeUpdate(); + cellSizeUpdate(true); return myScrollPane; } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesCellEditor.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesCellEditor.java 2008-05-18 11:46:28 UTC (rev 141) @@ -0,0 +1,87 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Color; +import java.awt.Component; +import java.awt.FlowLayout; + +import javax.swing.AbstractCellEditor; +import javax.swing.JCheckBox; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.table.TableCellEditor; + +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.PartAttributes; + +public class PartAttributesCellEditor extends AbstractCellEditor implements + TableCellEditor { + + /** + * + */ + private static final long serialVersionUID = 1L; + protected JCheckBox isReadOnlyCheckBox; + protected JCheckBox isAnswerCheckBox; + protected JCheckBox isVisibleCheckBox; + protected JPanel myPanel; + + public PartAttributesCellEditor() { + isReadOnlyCheckBox = new JCheckBox("read only"); + isAnswerCheckBox = new JCheckBox("is answer"); + isVisibleCheckBox = new JCheckBox("is visible"); + + myPanel = new JPanel(); + + myPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); + + myPanel.add(isAnswerCheckBox); + myPanel.add(isReadOnlyCheckBox); + myPanel.add(isVisibleCheckBox); + } + + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, int row, int column) { + + Color bgColor = isSelected ? table.getSelectionBackground() : table + .getBackground(); + Color frColor = isSelected ? table.getSelectionForeground() : table + .getForeground(); + + if (value == null) { + value = new PartAttributes(); + } + + PartAttributes attributes = (PartAttributes) value; + isAnswerCheckBox.setSelected(attributes.isAnswer()); + isReadOnlyCheckBox.setSelected(attributes.isReadOnly()); + isVisibleCheckBox.setSelected(attributes.isVisible()); + + myPanel.setBackground(bgColor); + myPanel.setForeground(frColor); + + isAnswerCheckBox.setBackground(bgColor); + isVisibleCheckBox.setBackground(bgColor); + isReadOnlyCheckBox.setBackground(bgColor); + + isAnswerCheckBox.setForeground(frColor); + isReadOnlyCheckBox.setForeground(frColor); + isVisibleCheckBox.setForeground(frColor); + + myPanel.setBounds(0, 0, table.getColumnModel().getColumn(column) + .getWidth(), 0); + + table.repaint(); + table.updateUI(); + + return myPanel; + } + + public Object getCellEditorValue() { + PartAttributes partAttributes = new PartAttributes(); + + partAttributes.setAnswer(isAnswerCheckBox.isSelected()); + partAttributes.setReadOnly(isReadOnlyCheckBox.isSelected()); + partAttributes.setVisible(isVisibleCheckBox.isSelected()); + + return partAttributes; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesRenderer.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartAttributesRenderer.java 2008-05-18 11:46:28 UTC (rev 141) @@ -0,0 +1,41 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Component; + +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.table.TableCellRenderer; + +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.PartAttributes; + +public class PartAttributesRenderer implements TableCellRenderer { + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + + PartOptionsPanel partOptionsPanel = new PartOptionsPanel( + (PartAttributes) value); + + if (isSelected) { + partOptionsPanel.setForeground(table.getSelectionForeground()); + partOptionsPanel.setBackground(table.getSelectionBackground()); + } else { + partOptionsPanel.setForeground(table.getForeground()); + partOptionsPanel.setBackground(table.getBackground()); + } + partOptionsPanel.setFont(table.getFont()); + partOptionsPanel.setBorder(UIManager + .getBorder("Table.focusCellHighlightBorder")); + if (table.isCellEditable(row, column)) { + partOptionsPanel.setForeground(UIManager + .getColor("Table.focusCellForeground")); + partOptionsPanel.setBackground(UIManager + .getColor("Table.focusCellBackground")); + } + + partOptionsPanel.updateUI(); + + return partOptionsPanel; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java 2008-05-18 11:46:28 UTC (rev 141) @@ -1,83 +1,88 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; -import java.awt.Component; +import java.awt.Color; import java.awt.FlowLayout; -import java.awt.LayoutManager; import javax.swing.JCheckBox; import javax.swing.JPanel; -import javax.swing.JTable; -import javax.swing.UIManager; -import javax.swing.border.EmptyBorder; -import javax.swing.table.TableCellRenderer; -public class PartOptionsPanel extends JPanel implements TableCellRenderer { +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.PartAttributes; - @Override - public Component getTableCellRendererComponent(JTable table, Object value, - boolean isSelected, boolean hasFocus, int row, int column) { - if (isSelected) { - setForeground(table.getSelectionForeground()); - setBackground(table.getSelectionBackground()); +public class PartOptionsPanel extends JPanel { - readOnlyCheckBox.setForeground(table.getSelectionForeground()); - isAnswerCheckBox.setForeground(table.getSelectionForeground()); - isVisibleCheckBox.setForeground(table.getSelectionForeground()); + /** + * + */ + private static final long serialVersionUID = 1L; - readOnlyCheckBox.setBackground(table.getSelectionBackground()); - isAnswerCheckBox.setBackground(table.getSelectionBackground()); - isVisibleCheckBox.setBackground(table.getSelectionBackground()); - } else { - setForeground(table.getForeground()); - setBackground(table.getBackground()); + protected JCheckBox isAnswerCheckBox = new JCheckBox("is answer"); + protected JCheckBox isReadOnlyCheckBox = new JCheckBox("read only"); + protected JCheckBox isVisibleCheckBox = new JCheckBox("is visible"); - readOnlyCheckBox.setForeground(table.getForeground()); - isAnswerCheckBox.setForeground(table.getForeground()); - isVisibleCheckBox.setForeground(table.getForeground()); + @Override + public void setBackground(Color bg) { + if (isReadOnlyCheckBox != null){ + isReadOnlyCheckBox.setBackground(bg); + } + + if (isAnswerCheckBox != null){ + isAnswerCheckBox.setBackground(bg); + } + + if (isVisibleCheckBox != null){ + isVisibleCheckBox.setBackground(bg); + } - readOnlyCheckBox.setBackground(table.getBackground()); - isAnswerCheckBox.setBackground(table.getBackground()); - isVisibleCheckBox.setBackground(table.getBackground()); - } - setFont(table.getFont()); - if (hasFocus) { - setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); - if (table.isCellEditable(row, column)) { - setForeground(UIManager.getColor("Table.focusCellForeground")); - setBackground(UIManager.getColor("Table.focusCellBackground")); - } - } else { - setBorder(new EmptyBorder(1, 2, 1, 2)); - } + super.setBackground(bg); + } - - - return this; + @Override + public void setForeground(Color fg) { + if (isReadOnlyCheckBox != null){ + isReadOnlyCheckBox.setForeground(fg); } + if (isAnswerCheckBox != null){ + isAnswerCheckBox.setForeground(fg); + } + if (isVisibleCheckBox != null){ + isVisibleCheckBox.setForeground(fg); + } - /** - * - */ - private static final long serialVersionUID = 1L; + super.setForeground(fg); + } - public JCheckBox readOnlyCheckBox; - public JCheckBox isAnswerCheckBox; - public JCheckBox isVisibleCheckBox; + public PartOptionsPanel(PartAttributes value) { + initComponents(); - public PartOptionsPanel() { - initComponents(); + if (value != null) { + isAnswerCheckBox.setSelected(value.isAnswer()); + isVisibleCheckBox.setSelected(value.isVisible()); + isReadOnlyCheckBox.setSelected(value.isReadOnly()); } + } - private void initComponents() { - LayoutManager layout = new FlowLayout(FlowLayout.LEFT); - setLayout(layout); - - readOnlyCheckBox = new JCheckBox("read only"); - isAnswerCheckBox = new JCheckBox("is answer"); - isVisibleCheckBox = new JCheckBox("is visible"); + public PartOptionsPanel() { + initComponents(); + } - add(readOnlyCheckBox); - add(isAnswerCheckBox); - add(isVisibleCheckBox); - } + protected void initComponents() { + setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5)); + + add(isAnswerCheckBox); + add(isReadOnlyCheckBox); + add(isVisibleCheckBox); + } + + public JCheckBox getReadOnlyCheckBox() { + return isReadOnlyCheckBox; + } + + public JCheckBox getIsAnswerCheckBox() { + return isAnswerCheckBox; + } + + public JCheckBox getIsVisibleCheckBox() { + return isVisibleCheckBox; + } + } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-18 11:46:28 UTC (rev 141) @@ -1,54 +1,21 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; - import javax.swing.JTable; import javax.swing.ListSelectionModel; -public class PartsTable extends JTable implements MouseListener { +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQPart; +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.PartAttributes; - @Override - public void mouseClicked(MouseEvent arg0) { - // TODO Auto-generated method stub - - } +public class PartsTable extends JTable { + /** + * + */ + private static final long serialVersionUID = 1L; - @Override - public void mouseEntered(MouseEvent arg0) { - // TODO Auto-generated method stub - - } + public PartsTable() { + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - @Override - public void mouseExited(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void mousePressed(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - @Override - public void mouseReleased(MouseEvent arg0) { - // TODO Auto-generated method stub - - } - - /** - * - */ - private static final long serialVersionUID = 1L; - - public PartsTable() { - setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); - setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); - - addMouseListener(this); - } + setDefaultRenderer(CompileQPart.class, new MultiLineCellRenderer()); + setDefaultRenderer(PartAttributes.class, new PartAttributesRenderer()); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-18 11:46:28 UTC (rev 141) @@ -1,108 +1,102 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; import java.io.Reader; -import java.util.Iterator; -import org.dom4j.Document; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; -import org.dom4j.io.SAXReader; - import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; public class CompileQData extends ItemData { @Override public String marshal(TreeItem anItem) { - Document doc = DocumentHelper.createDocument(); - Element root = doc.addElement("SimpleQuestion"); - root.addElement("caption").setText(getCaption()); - root.addElement("question").setText(getQuestion()); + return ""; - root.addElement("ShowOnSummaryPage").setText( - String.valueOf(getShowOnSummaryPage())); - - Element ans = root.addElement("answers"); - - ans.addAttribute("singleVariant", String.valueOf(getAnswers() - .getSingleVariant())); - - Iterator<CompileQPart> iter = getAnswers().answers.iterator(); - - while (iter.hasNext()) { - CompileQPart answer = iter.next(); - - Element ansEl = ans.addElement("answer"); - ansEl - .addAttribute("point", String.valueOf(answer - .getAnswerPoint())); - ansEl.setText(answer.getAnswerText()); - } - - return doc.asXML(); + // Document doc = DocumentHelper.createDocument(); +// Element root = doc.addElement("SimpleQuestion"); +// root.addElement("caption").setText(getCaption()); +// root.addElement("question").setText(getQuestion()); +// +// root.addElement("ShowOnSummaryPage").setText( +// String.valueOf(getShowOnSummaryPage())); +// +// Element ans = root.addElement("answers"); +// +// ans.addAttribute("singleVariant", String.valueOf(getAnswers() +// .getSingleVariant())); +// +// Iterator<CompileQPart> iter = getAnswers().answers.iterator(); +// +// while (iter.hasNext()) { +// CompileQPart answer = iter.next(); +// +// Element ansEl = ans.addElement("answer"); +// ansEl +// .addAttribute("point", String.valueOf(answer +// .getAnswerPoint())); +// ansEl.setText(answer.getAnswerText()); +// } +// +// return doc.asXML(); } - private CompileQPartsTableModel answers = new CompileQPartsTableModel(); private String caption = ""; - private String question = ""; - public CompileQPartsTableModel getAnswers() { - return answers; - } - public void setAnswers(CompileQPartsTableModel answers) { - this.answers = answers; - } public String getCaption() { return caption; } + + private CompileQPartsTableModel parts = new CompileQPartsTableModel(); + + public void setCaption(String caption) { this.caption = caption; } - public String getQuestion() { - return question; - } - public void setQuestion(String question) { - this.question = question; - } @SuppressWarnings("unchecked") public boolean unmarshal(Reader res, TreeItem anItem) { - SAXReader reader = new SAXReader(); +// SAXReader reader = new SAXReader(); +// +// Document doc = null; +// try { +// doc = reader.read(res); +// +// Element root = doc.getRootElement(); +// Element answers = root.element("answers"); +// +// setCaption(root.elementTextTrim("caption")); +// setQuestion(root.elementTextTrim("question")); +// +// boolean showOnSP = Boolean.valueOf(root +// .elementTextTrim("ShowOnSummaryPage")); +// setShowOnSummaryPage(showOnSP); +// +// getAnswers().setSingleVariant( +// answers.attributeValue("singleVariant").equalsIgnoreCase( +// "true")); +// +// getAnswers().answers.clear(); +// +// Iterator<Element> iter = answers.elementIterator("answer"); +// while (iter.hasNext()) { +// Element answer = iter.next(); +// CompileQPart ans = new CompileQPart(answer +// .getText()); +// ans.setAnswerPoint(Double.valueOf(answer +// .attributeValue("point"))); +// getAnswers().answers.add(ans); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// return false; +// } +// + return true; + } - Document doc = null; - try { - doc = reader.read(res); + public CompileQPartsTableModel getParts() { + return parts; + } - Element root = doc.getRootElement(); - Element answers = root.element("answers"); - - setCaption(root.elementTextTrim("caption")); - setQuestion(root.elementTextTrim("question")); - - boolean showOnSP = Boolean.valueOf(root - .elementTextTrim("ShowOnSummaryPage")); - setShowOnSummaryPage(showOnSP); - - getAnswers().setSingleVariant( - answers.attributeValue("singleVariant").equalsIgnoreCase( - "true")); - - getAnswers().answers.clear(); - - Iterator<Element> iter = answers.elementIterator("answer"); - while (iter.hasNext()) { - Element answer = iter.next(); - CompileQPart ans = new CompileQPart(answer - .getText()); - ans.setAnswerPoint(Double.valueOf(answer - .attributeValue("point"))); - getAnswers().answers.add(ans); - } - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - return true; + public void setParts(CompileQPartsTableModel parts) { + this.parts = parts; } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-18 11:46:28 UTC (rev 141) @@ -1,16 +1,11 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; -import java.util.Iterator; - import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; -import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; -import edu.lnu.FireFly.WebEditor.ItemModels.Template; public class CompileQModel extends ResourcedItemModel { @Override @@ -69,29 +64,29 @@ @Override protected void updateResourceFile(TreeItem anItem) { - Resource resource = WebEditor.instance.getManifest().resources - .findResourceByIdentifier(((Item) anItem).identifierref); - - Template template = new Template(resource.getFullHref(), this); - - CompileQData itemData = getData(anItem); - - template.setProperty("Caption", itemData.getCaption()); - template.setProperty("Question", itemData.getQuestion()); - - Iterator<CompileQPart> iter = itemData.getAnswers().answers - .iterator(); - String answers = "\r\nsetSingleVariant(" - + itemData.getAnswers().getSingleVariant() + ");\r\n"; - - while (iter.hasNext()) { - CompileQPart answer = iter.next(); - answers += "addAnswer(\"" + answer.getAnswerText().replace("\"", "\\\"") + "\", " - + answer.getAnswerPoint() + ");" + "\r\n"; - } - - template.setProperty("answers", answers); - template.updateResource(); +// Resource resource = WebEditor.instance.getManifest().resources +// .findResourceByIdentifier(((Item) anItem).identifierref); +// +// Template template = new Template(resource.getFullHref(), this); +// +// CompileQData itemData = getData(anItem); +// +// template.setProperty("Caption", itemData.getCaption()); +// template.setProperty("Question", itemData.getQuestion()); +// +// Iterator<CompileQPart> iter = itemData.getAnswers().questionParts +// .iterator(); +// String answers = "\r\nsetSingleVariant(" +// + itemData.getAnswers().getSingleVariant() + ");\r\n"; +// +// while (iter.hasNext()) { +// CompileQPart answer = iter.next(); +// answers += "addAnswer(\"" + answer.getAnswerText().replace("\"", "\\\"") + "\", " +// + answer.getAnswerPoint() + ");" + "\r\n"; +// } +// +// template.setProperty("answers", answers); +// template.updateResource(); } @Override Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-18 11:46:28 UTC (rev 141) @@ -11,6 +11,16 @@ private String answerText = ""; private double answerPoint = 0; + private PartAttributes partAttributes = new PartAttributes(); + + public PartAttributes getPartAttributes() { + return partAttributes; + } + + public void setPartAttributes(PartAttributes partAttributes) { + this.partAttributes = partAttributes; + } + public CompileQPart(String answerText) { this.answerText = answerText; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-18 11:46:28 UTC (rev 141) @@ -5,27 +5,22 @@ import javax.swing.table.DefaultTableModel; -import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.MultiLineCellRenderer; -import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.PartOptionsPanel; - public class CompileQPartsTableModel extends DefaultTableModel { /** * */ private static final long serialVersionUID = 1L; - private boolean singleVariant = false; + public List<CompileQPart> questionParts = new ArrayList<CompileQPart>(); - public List<CompileQPart> answers = new ArrayList<CompileQPart>(); - @Override public Class<?> getColumnClass(int col) { if (col == 1){ - return MultiLineCellRenderer.class; + return CompileQPart.class; } if (col == 2){ - return PartOptionsPanel.class; + return PartAttributes.class; } return Object.class; @@ -51,11 +46,11 @@ @Override public int getRowCount() { - if (answers == null) { + if (questionParts == null) { return 0; } - int answersCount = answers.size(); + int answersCount = questionParts.size(); @@ -64,19 +59,19 @@ @Override public Object getValueAt(int row, int col) { - if (row == answers.size()) { - return ""; + if (row == questionParts.size()) { + return null; } switch (col) { case 0: return row + 1; case 1: - return answers.get(row); + return questionParts.get(row); case 2: - return answers.get(row).getAnswerPoint(); + return questionParts.get(row).getPartAttributes(); default: - return ""; + return null; } } @@ -88,77 +83,56 @@ case 1: return true; case 2: - return false; + return true; default: return false; } } - public boolean isSingleVariant() { - return singleVariant; - } - - public void setSingleVariant(boolean singleVariant) { - this.singleVariant = singleVariant; - } - - public boolean getSingleVariant() { - return this.singleVariant; - } - @Override - public void setValueAt(Object arg0, int arg1, int arg2) { - if (arg1 == answers.size()) { - answers.add(new CompileQPart("")); + public void setValueAt(Object value, int row, int col) { + if (row == questionParts.size()) { + questionParts.add(new CompileQPart("")); } - String newValue = arg0.toString(); + String newValue = value.toString(); - switch (arg2) { + switch (col) { case 1: -// newValue = ((CompileQPart)arg0) - answers.get(arg1).setAnswerText(newValue); + questionParts.get(row).setAnswerText(newValue); break; case 2: - try { - double value = 0; - if (!newValue.equals("")) { - value = Double.valueOf(newValue); - } - answers.get(arg1).setAnswerPoint(value); - } catch (NumberFormatException e) { - System.out.print("Entered value is't a double value!\n"); - } + questionParts.get(row).setPartAttributes((PartAttributes)value); break; } - fireTableRowsUpdated(arg1, arg1); + fireTableRowsUpdated(row, row); } public void deleteRow(int selectedRow) { - if (selectedRow < answers.size() && selectedRow >= 0) { - answers.remove(selectedRow); + if (selectedRow < questionParts.size() && selectedRow >= 0) { + questionParts.remove(selectedRow); fireTableRowsDeleted(selectedRow, selectedRow); } } public void insertRow(int selectedRow) { - if (selectedRow >= answers.size()){ + if (selectedRow >= questionParts.size()){ selectedRow--; } - answers.add(selectedRow + 1, new CompileQPart("")); + questionParts.add(selectedRow + 1, new CompileQPart("")); fireTableRowsInserted(selectedRow + 1, selectedRow + 1); } public boolean moveUp(int selectedRow) { - if (selectedRow < 1 || selectedRow >= answers.size()){ + if (selectedRow < 1 || selectedRow >= questionParts.size()){ return false; } - CompileQPart answer = answers.get(selectedRow); - answers.set(selectedRow, answers.get(selectedRow - 1)); - answers.set(selectedRow - 1, answer); + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow - 1)); + questionParts.set(selectedRow - 1, answer); fireTableRowsUpdated(selectedRow - 1, selectedRow); @@ -166,13 +140,13 @@ } public boolean moveDown(int selectedRow) { - if (selectedRow < 0 || selectedRow >= answers.size() - 1){ + if (selectedRow < 0 || selectedRow >= questionParts.size() - 1){ return false; } - CompileQPart answer = answers.get(selectedRow); - answers.set(selectedRow, answers.get(selectedRow + 1)); - answers.set(selectedRow + 1, answer); + CompileQPart answer = questionParts.get(selectedRow); + questionParts.set(selectedRow, questionParts.get(selectedRow + 1)); + questionParts.set(selectedRow + 1, answer); fireTableRowsUpdated(selectedRow + 1, selectedRow); Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/PartAttributes.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/PartAttributes.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/PartAttributes.java 2008-05-18 11:46:28 UTC (rev 141) @@ -0,0 +1,25 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; + +public class PartAttributes { + private boolean isAnswer = false; + private boolean isReadOnly = false; + private boolean isVisible = true; + public boolean isAnswer() { + return isAnswer; + } + public void setAnswer(boolean isAnswer) { + this.isAnswer = isAnswer; + } + public boolean isReadOnly() { + return isReadOnly; + } + public void setReadOnly(boolean isReadOnly) { + this.isReadOnly = isReadOnly; + } + public boolean isVisible() { + return isVisible; + } + public void setVisible(boolean isVisible) { + this.isVisible = isVisible; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-15 22:03:24 UTC (rev 140) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-18 11:46:28 UTC (rev 141) @@ -97,10 +97,6 @@ { String res = loadResource(location, anItem); - if (res == null || res.trim().equals("")) { - return false; - } - ItemData itemData = getItemData(anItem); if (itemData == null) { @@ -108,6 +104,10 @@ setItemData(anItem, itemData); } + if (res == null || res.trim().equals("")) { + return false; + } + itemData.unmarshal(new StringReader(res), anItem); return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-15 22:03:22
|
Revision: 140 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=140&view=rev Author: sem62 Date: 2008-05-15 15:03:24 -0700 (Thu, 15 May 2008) Log Message: ----------- Cell size bugs fixed. Object in cells is an instance of CompileQPart now. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java WebEditor/template/CompileQModel.conf WebEditor/template/SimpleQuestionPropertiestsDlg.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-15 22:03:24 UTC (rev 140) @@ -4,7 +4,6 @@ import java.awt.event.ActionListener; import javax.swing.JButton; -import javax.swing.ListSelectionModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; @@ -30,7 +29,7 @@ private javax.swing.JPanel captionPanel; private javax.swing.JPanel partsPanel; private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JTable partsTable; + private PartsTable partsTable; private javax.swing.JTextField titleTextField; private javax.swing.JTextField captionTextField; private javax.swing.JTextField questionTextField; @@ -147,6 +146,7 @@ dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) .getAnswers(); dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); + partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable @@ -207,11 +207,7 @@ editQuestionInHtmlBtn.addActionListener(this); editAnswerVariantInHtmlEditor.addActionListener(this); - partsTable = new javax.swing.JTable(); - partsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - - partsTable.setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); - partsTable.setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); + partsTable = new PartsTable(); setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-15 22:03:24 UTC (rev 140) @@ -8,7 +8,8 @@ import javax.swing.border.EmptyBorder; import javax.swing.table.TableCellRenderer; -public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { +public class MultiLineCellRenderer extends JTextArea implements + TableCellRenderer { /** * */ @@ -42,9 +43,18 @@ setText((value == null) ? "" : value.toString()); -// int thisHeight = getPreferredSize().height + 2; -// table.setRowHeight(row, thisHeight); + updateUI(); + + int thisHeight = getPreferredSize().height + 2; + if (thisHeight < 100) { + thisHeight = 100; + } + + if (table.getRowHeight(row) != thisHeight){ + table.setRowHeight(row, thisHeight); + } + return this; } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-15 22:03:24 UTC (rev 140) @@ -17,17 +17,16 @@ TableCellEditor, InputMethodListener, KeyListener { @Override public void keyPressed(KeyEvent e) { -// cellSizeUpdate(); } @Override public void keyReleased(KeyEvent e) { -// cellSizeUpdate(); } @Override public void keyTyped(KeyEvent e) { - cellSizeUpdate(); + + //cellSizeUpdate(); } protected int tableRow; @@ -40,6 +39,11 @@ private void cellSizeUpdate() { int thisHeight = myEditor.getPreferredSize().height + 2; + + if (thisHeight < 100){ + thisHeight = 100; + } + table.setRowHeight(tableRow, thisHeight); } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartsTable.java 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,54 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + +import javax.swing.JTable; +import javax.swing.ListSelectionModel; + +public class PartsTable extends JTable implements MouseListener { + + @Override + public void mouseClicked(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseEntered(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseExited(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mousePressed(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void mouseReleased(MouseEvent arg0) { + // TODO Auto-generated method stub + + } + + /** + * + */ + private static final long serialVersionUID = 1L; + + public PartsTable() { + setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); + setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); + + addMouseListener(this); + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-15 22:03:24 UTC (rev 140) @@ -1,6 +1,13 @@ package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; -public class CompileQPart { +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.MultiLineCellRenderer; + +public class CompileQPart extends MultiLineCellRenderer{ + /** + * + */ + private static final long serialVersionUID = 1L; + private String answerText = ""; private double answerPoint = 0; @@ -23,4 +30,8 @@ public void setAnswerText(String answerText) { this.answerText = answerText; } + + public String toString(){ + return getAnswerText(); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-14 21:36:31 UTC (rev 139) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-15 22:03:24 UTC (rev 140) @@ -72,7 +72,7 @@ case 0: return row + 1; case 1: - return answers.get(row).getAnswerText(); + return answers.get(row); case 2: return answers.get(row).getAnswerPoint(); default: @@ -112,15 +112,18 @@ answers.add(new CompileQPart("")); } + String newValue = arg0.toString(); + switch (arg2) { case 1: - answers.get(arg1).setAnswerText(arg0.toString()); +// newValue = ((CompileQPart)arg0) + answers.get(arg1).setAnswerText(newValue); break; case 2: try { double value = 0; - if (!arg0.toString().equals("")) { - value = Double.valueOf(arg0.toString()); + if (!newValue.equals("")) { + value = Double.valueOf(newValue); } answers.get(arg1).setAnswerPoint(value); } catch (NumberFormatException e) { Added: WebEditor/template/CompileQModel.conf =================================================================== --- WebEditor/template/CompileQModel.conf (rev 0) +++ WebEditor/template/CompileQModel.conf 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<SimpleQuestion> +<caption>New simple question</caption> +<question>Answer "Yes" to question, please.</question> +<ShowOnSummaryPage>true</ShowOnSummaryPage> +<answers singleVariant="false"> +<answer point="0.0">Yes</answer> +<answer point="1.0">No</answer> +</answers> +</SimpleQuestion> \ No newline at end of file Added: WebEditor/template/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/template/SimpleQuestionPropertiestsDlg.java (rev 0) +++ WebEditor/template/SimpleQuestionPropertiestsDlg.java 2008-05-15 22:03:24 UTC (rev 140) @@ -0,0 +1,579 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.ListSelectionModel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.table.DefaultTableColumnModel; + +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionAnswersDataModel; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionData; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; + +/** + * + * @author Yura + */ +public class SimpleQuestionPropertiestsDlg extends PropertyDlg implements + ActionListener, ChangeListener { + + private static final long serialVersionUID = 1961383080461718171L; + + private javax.swing.JCheckBox sameAsTitleCheckBox; + private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JLabel titleLabel; + private javax.swing.JPanel generalPanel; + private javax.swing.JPanel captionPanel; + private javax.swing.JPanel questionPanel; + private javax.swing.JPanel answersPanel; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTable answersTable; + private javax.swing.JTextField titleTextField; + private javax.swing.JTextField captionTextField; + private javax.swing.JTextField questionTextField; + private javax.swing.JButton editCaptionInHtmlBtn; + private javax.swing.JButton editQuestionInHtmlBtn; + private javax.swing.JButton editAnswerVariantInHtmlEditor; + private javax.swing.JButton insertAnswerVariantBtn; + private javax.swing.JButton deleteAnswerVariantBtn; + private javax.swing.JButton moveUpAnswerVariantBtn; + private javax.swing.JButton moveDownAnswerVariantBtn; + private SimpleQuestionAnswersDataModel simpleQuestionAnswersDataModel; + + private javax.swing.JTextField currentAnswerVariant; + + public SimpleQuestionPropertiestsDlg() { + obj = this; + + initComponents(); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + super.actionPerformed(arg0); + + if (arg0.getSource() == editQuestionInHtmlBtn) { + editTextFieldInHtmlEditor(questionTextField); + } + + if (arg0.getSource() == editCaptionInHtmlBtn) { + editTextFieldInHtmlEditor(captionTextField); + } + + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + String text = answersTable.getModel().getValueAt(selectedRow, 1) + .toString(); + + currentAnswerVariant.setText(text); + + editTextFieldInHtmlEditor(currentAnswerVariant); + } + + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.insertRow(selectedRow); + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); + } + + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.deleteRow(selectedRow); + + if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ + selectedRow--; + } + + answersTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); + } + } + + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); + } + } + } + + @Override + protected void fillFields() { + SimpleQuestionPropertiestsDlg dlg = (SimpleQuestionPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); + + SimpleQuestionModel itemModel = new SimpleQuestionModel(); + + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); + dlg.questionTextField.setText(itemModel.getData(manifestItem) + .getQuestion()); + + dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) + .getAnswers(); + dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); + + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.answersTable + .getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); + + dlg.titleTextField.selectAll(); + } + + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); + + String text = currentAnswerVariant.getText(); + int selectedRow = answersTable.getSelectedRow(); + answersTable.getModel().setValueAt(text, selectedRow, 1); + } + + private void initComponents() { + setTitle("Propertiests..."); + + generalPanel = new javax.swing.JPanel(); + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + captionPanel = new javax.swing.JPanel(); + captionTextField = new javax.swing.JTextField(); + sameAsTitleCheckBox = new javax.swing.JCheckBox(); + questionPanel = new javax.swing.JPanel(); + questionTextField = new javax.swing.JTextField(); + oneAnswerCheckBox = new javax.swing.JCheckBox(); + answersPanel = new javax.swing.JPanel(); + jScrollPane1 = new javax.swing.JScrollPane(); + cancelButton = new javax.swing.JButton("Cancel"); + okButton = new javax.swing.JButton("Ok"); + editCaptionInHtmlBtn = new JButton("..."); + editQuestionInHtmlBtn = new JButton("..."); + editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + insertAnswerVariantBtn = new JButton("Insert"); + deleteAnswerVariantBtn = new JButton("Delete"); + + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); + + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); + + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); + + cancelButton.addActionListener(this); + okButton.addActionListener(this); + sameAsTitleCheckBox.addChangeListener(this); + oneAnswerCheckBox.addChangeListener(this); + editCaptionInHtmlBtn.addActionListener(this); + editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); + + answersTable = new javax.swing.JTable(); + answersTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); + + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("Title"); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( + generalPanel); + generalPanel.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleLabel)).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + + captionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Caption")); + sameAsTitleCheckBox.setText("Some as the title"); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( + captionPanel); + captionPanel.setLayout(jPanel2Layout); + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + sameAsTitleCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addComponent(sameAsTitleCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + captionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); + + questionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Question")); + oneAnswerCheckBox.setText("Only one correct answer"); + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout( + questionPanel); + questionPanel.setLayout(jPanel3Layout); + jPanel3Layout + .setHorizontalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + oneAnswerCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel3Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + questionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editQuestionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel3Layout + .setVerticalGroup(jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel3Layout + .createSequentialGroup() + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(oneAnswerCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel3Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editQuestionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + questionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); + + answersPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Variants of answer")); + + jScrollPane1.setViewportView(answersTable); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + answersPanel); + answersPanel.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup() + .addComponent(moveUpAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(insertAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 111, Short.MAX_VALUE) + .addContainerGap(10, 10) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + moveUpAnswerVariantBtn, + 20, 20, 20) + .addComponent( + moveDownAnswerVariantBtn, + 20, 20, 20) + .addComponent( + insertAnswerVariantBtn, + 20, 20, 20) + .addComponent( + deleteAnswerVariantBtn, + 20, 20, 20) + .addComponent( + editAnswerVariantInHtmlEditor, + 20, 20, 20)) + .addContainerGap())); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + answersPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + questionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + captionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + generalPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + layout + .createSequentialGroup() + .addComponent( + okButton) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + cancelButton))) + .addContainerGap())); + layout + .setVerticalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + generalPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + captionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + questionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + answersPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); + + this.getRootPane().setDefaultButton(okButton); + + pack(); + } + + @Override + protected void saveChanges() { + SimpleQuestionModel itemModel = new SimpleQuestionModel(); + + manifestItem.setTitle(titleTextField.getText()); + + SimpleQuestionData data = itemModel.getData(manifestItem); + + if (sameAsTitleCheckBox.isSelected()) { + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); + } + + data.setQuestion(questionTextField.getText()); + + data.setAnswers(simpleQuestionAnswersDataModel); + + itemModel.updateItemResource(manifestItem, true); + } + + @Override + public void stateChanged(ChangeEvent e) { + if (e.getSource() == sameAsTitleCheckBox) { + if (sameAsTitleCheckBox.isSelected() + && captionTextField.isEnabled()) { + captionTextField.setText(titleTextField.getText()); + } + captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); + } + + if (e.getSource() == oneAnswerCheckBox) { + simpleQuestionAnswersDataModel.setSingleVariant(oneAnswerCheckBox + .isSelected()); + } + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-14 21:36:46
|
Revision: 139 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=139&view=rev Author: sem62 Date: 2008-05-14 14:36:31 -0700 (Wed, 14 May 2008) Log Message: ----------- Added cellSizeUpdae calls in MouseLister. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-14 21:05:22 UTC (rev 138) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-14 21:36:31 UTC (rev 139) @@ -210,8 +210,7 @@ partsTable = new javax.swing.JTable(); partsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - partsTable.setDefaultRenderer(String.class, new MultiLineCellRenderer()); - partsTable.setDefaultRenderer(Object.class, new MultiLineCellRenderer()); + partsTable.setDefaultRenderer(MultiLineCellRenderer.class, new MultiLineCellRenderer()); partsTable.setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-14 21:05:22 UTC (rev 138) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-14 21:36:31 UTC (rev 139) @@ -8,15 +8,15 @@ import javax.swing.border.EmptyBorder; import javax.swing.table.TableCellRenderer; -class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { +public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { /** * */ private static final long serialVersionUID = 1L; public MultiLineCellRenderer() { + setWrapStyleWord(true); setLineWrap(true); - setWrapStyleWord(true); setOpaque(true); } @@ -39,7 +39,12 @@ } else { setBorder(new EmptyBorder(1, 2, 1, 2)); } + setText((value == null) ? "" : value.toString()); + +// int thisHeight = getPreferredSize().height + 2; +// table.setRowHeight(row, thisHeight); + return this; } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-14 21:05:22 UTC (rev 138) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-14 21:36:31 UTC (rev 139) @@ -1,6 +1,10 @@ package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; import java.awt.Component; +import java.awt.event.InputMethodEvent; +import java.awt.event.InputMethodListener; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; @@ -9,43 +13,84 @@ import javax.swing.JTextArea; import javax.swing.table.TableCellEditor; -public class MultiLineTableCellEditor extends AbstractCellEditor implements TableCellEditor -{ +public class MultiLineTableCellEditor extends AbstractCellEditor implements + TableCellEditor, InputMethodListener, KeyListener { + @Override + public void keyPressed(KeyEvent e) { +// cellSizeUpdate(); + } + + @Override + public void keyReleased(KeyEvent e) { +// cellSizeUpdate(); + } + + @Override + public void keyTyped(KeyEvent e) { + cellSizeUpdate(); + } + + protected int tableRow; + protected JTable table; + + @Override + public void caretPositionChanged(InputMethodEvent arg0) { + cellSizeUpdate(); + } + + private void cellSizeUpdate() { + int thisHeight = myEditor.getPreferredSize().height + 2; + table.setRowHeight(tableRow, thisHeight); + } + + @Override + public void inputMethodTextChanged(InputMethodEvent arg0) { + cellSizeUpdate(); + } + /** * */ private static final long serialVersionUID = 1L; protected JTextArea myEditor; protected JScrollPane myScrollPane; - + public MultiLineTableCellEditor() { myEditor = new JTextArea(); myEditor.setWrapStyleWord(true); myEditor.setLineWrap(true); myEditor.setOpaque(true); -// myEditor.setRows(3); + myEditor.addInputMethodListener(this); + myEditor.addKeyListener(this); + myScrollPane = new JScrollPane(myEditor); myScrollPane.setBorder(BorderFactory.createEmptyBorder()); - myScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + myScrollPane + .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); myScrollPane.getVerticalScrollBar().setFocusable(false); myScrollPane.getHorizontalScrollBar().setFocusable(false); } public Component getTableCellEditorComponent(JTable table, Object value, - boolean isSelected, int row, int column) - { - myEditor.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground()); - myEditor.setForeground(isSelected ? table.getSelectionForeground() : table.getForeground()); + boolean isSelected, int row, int column) { + this.table = table; + this.tableRow = row; + + myEditor.setBackground(isSelected ? table.getSelectionBackground() + : table.getBackground()); + myEditor.setForeground(isSelected ? table.getSelectionForeground() + : table.getForeground()); myEditor.setText(value == null ? "" : value.toString()); - myScrollPane.setBounds(0,0,table.getColumnModel().getColumn(column).getWidth(), 0); - int thisHeight = myEditor.getPreferredSize().height+2; - table.setRowHeight(row, thisHeight); - + myScrollPane.setBounds(0, 0, table.getColumnModel().getColumn(column) + .getWidth(), 0); + + cellSizeUpdate(); + return myScrollPane; } public Object getCellEditorValue() { return myEditor.getText(); - } + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-14 21:05:22 UTC (rev 138) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-14 21:36:31 UTC (rev 139) @@ -5,6 +5,7 @@ import javax.swing.table.DefaultTableModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.MultiLineCellRenderer; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.PartOptionsPanel; public class CompileQPartsTableModel extends DefaultTableModel { @@ -19,7 +20,10 @@ @Override public Class<?> getColumnClass(int col) { - + if (col == 1){ + return MultiLineCellRenderer.class; + } + if (col == 2){ return PartOptionsPanel.class; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-14 21:06:42
|
Revision: 138 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=138&view=rev Author: sem62 Date: 2008-05-14 14:05:22 -0700 (Wed, 14 May 2008) Log Message: ----------- Added CompileQ model. Not working properly jet. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/TreeDataModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/CompileQPropertiestsDlg.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,508 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JButton; +import javax.swing.ListSelectionModel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.table.DefaultTableColumnModel; + +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.PropertyDlg; +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQData; +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQModel; +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQPartsTableModel; + +/** + * + * @author Yura + */ +public class CompileQPropertiestsDlg extends PropertyDlg implements + ActionListener, ChangeListener { + + private static final long serialVersionUID = 1961383080461718171L; + + private javax.swing.JCheckBox sameAsTitleCheckBox; + private javax.swing.JCheckBox oneAnswerCheckBox; + private javax.swing.JLabel titleLabel; + private javax.swing.JPanel generalPanel; + private javax.swing.JPanel captionPanel; + private javax.swing.JPanel partsPanel; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTable partsTable; + private javax.swing.JTextField titleTextField; + private javax.swing.JTextField captionTextField; + private javax.swing.JTextField questionTextField; + private javax.swing.JButton editCaptionInHtmlBtn; + private javax.swing.JButton editQuestionInHtmlBtn; + private javax.swing.JButton editAnswerVariantInHtmlEditor; + private javax.swing.JButton insertAnswerVariantBtn; + private javax.swing.JButton deleteAnswerVariantBtn; + private javax.swing.JButton moveUpAnswerVariantBtn; + private javax.swing.JButton moveDownAnswerVariantBtn; + private CompileQPartsTableModel simpleQuestionAnswersDataModel; + + private javax.swing.JTextField currentAnswerVariant; + + public CompileQPropertiestsDlg() { + obj = this; + + initComponents(); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + super.actionPerformed(arg0); + + if (arg0.getSource() == editQuestionInHtmlBtn) { + editTextFieldInHtmlEditor(questionTextField); + } + + if (arg0.getSource() == editCaptionInHtmlBtn) { + editTextFieldInHtmlEditor(captionTextField); + } + + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { + int selectedRow = partsTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + String text = partsTable.getModel().getValueAt(selectedRow, 1) + .toString(); + + currentAnswerVariant.setText(text); + + editTextFieldInHtmlEditor(currentAnswerVariant); + } + + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.insertRow(selectedRow); + partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); + } + + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.deleteRow(selectedRow); + + if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ + selectedRow--; + } + + partsTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ + partsTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); + } + } + + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = partsTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ + partsTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); + } + } + } + + @Override + protected void fillFields() { + CompileQPropertiestsDlg dlg = (CompileQPropertiestsDlg) obj; + dlg.titleTextField.setText(manifestItem.getTitle()); + + CompileQModel itemModel = new CompileQModel(); + + dlg.captionTextField.setText(itemModel.getData(manifestItem) + .getCaption()); + dlg.sameAsTitleCheckBox.setSelected(dlg.titleTextField.getText() + .equals(dlg.captionTextField.getText())); + dlg.questionTextField.setText(itemModel.getData(manifestItem) + .getQuestion()); + + dlg.simpleQuestionAnswersDataModel = itemModel.getData(manifestItem) + .getAnswers(); + dlg.partsTable.setModel(dlg.simpleQuestionAnswersDataModel); + partsTable.getColumnModel().getColumn(1).setCellEditor(new MultiLineTableCellEditor()); + + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.partsTable + .getColumnModel(); + columnModel.getColumn(0).setPreferredWidth(1); + columnModel.getColumn(1).setPreferredWidth(300); + columnModel.getColumn(2).setPreferredWidth(1); + + dlg.titleTextField.selectAll(); + } + + @Override + public void editedHtmlTextWasSet() { + super.editedHtmlTextWasSet(); + + String text = currentAnswerVariant.getText(); + int selectedRow = partsTable.getSelectedRow(); + partsTable.getModel().setValueAt(text, selectedRow, 1); + } + + private void initComponents() { + setTitle("Propertiests..."); + + generalPanel = new javax.swing.JPanel(); + titleLabel = new javax.swing.JLabel(); + titleTextField = new javax.swing.JTextField(); + captionPanel = new javax.swing.JPanel(); + captionTextField = new javax.swing.JTextField(); + sameAsTitleCheckBox = new javax.swing.JCheckBox(); + questionTextField = new javax.swing.JTextField(); + oneAnswerCheckBox = new javax.swing.JCheckBox(); + partsPanel = new javax.swing.JPanel(); + jScrollPane1 = new javax.swing.JScrollPane(); + cancelButton = new javax.swing.JButton("Cancel"); + okButton = new javax.swing.JButton("Ok"); + editCaptionInHtmlBtn = new JButton("..."); + editQuestionInHtmlBtn = new JButton("..."); + editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + insertAnswerVariantBtn = new JButton("Insert"); + deleteAnswerVariantBtn = new JButton("Delete"); + + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); + + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); + + currentAnswerVariant = new javax.swing.JTextField(); + captionTextField.addActionListener(this); + + cancelButton.addActionListener(this); + okButton.addActionListener(this); + sameAsTitleCheckBox.addChangeListener(this); + oneAnswerCheckBox.addChangeListener(this); + editCaptionInHtmlBtn.addActionListener(this); + editQuestionInHtmlBtn.addActionListener(this); + editAnswerVariantInHtmlEditor.addActionListener(this); + + partsTable = new javax.swing.JTable(); + partsTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + + partsTable.setDefaultRenderer(String.class, new MultiLineCellRenderer()); + partsTable.setDefaultRenderer(Object.class, new MultiLineCellRenderer()); + partsTable.setDefaultRenderer(PartOptionsPanel.class, new PartOptionsPanel()); + + setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); + + generalPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("General")); + titleLabel.setText("Title"); + + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout( + generalPanel); + generalPanel.setLayout(jPanel1Layout); + jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleLabel)).addGroup( + jPanel1Layout.createSequentialGroup().addContainerGap() + .addComponent(titleTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + jPanel1Layout + .setVerticalGroup(jPanel1Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel1Layout + .createSequentialGroup() + .addComponent(titleLabel) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + titleTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + + captionPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Caption")); + sameAsTitleCheckBox.setText("Some as the title"); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout( + captionPanel); + captionPanel.setLayout(jPanel2Layout); + jPanel2Layout + .setHorizontalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + sameAsTitleCheckBox)) + .addContainerGap(283, Short.MAX_VALUE)) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + jPanel2Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + captionTextField, + javax.swing.GroupLayout.DEFAULT_SIZE, + 370, Short.MAX_VALUE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 30, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap())); + jPanel2Layout + .setVerticalGroup(jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel2Layout + .createSequentialGroup() + .addComponent(sameAsTitleCheckBox) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + jPanel2Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + editCaptionInHtmlBtn, + javax.swing.GroupLayout.PREFERRED_SIZE, + 20, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent( + captionTextField, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap())); + + oneAnswerCheckBox.setText("Only one correct answer"); + + partsPanel.setBorder(javax.swing.BorderFactory + .createTitledBorder("Variants of answer")); + + jScrollPane1.setViewportView(partsTable); + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout( + partsPanel); + partsPanel.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( + jPanel4Layout.createSequentialGroup() + .addComponent(moveUpAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(insertAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() + .addComponent(jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, 364, + Short.MAX_VALUE).addContainerGap())); + + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 111, Short.MAX_VALUE) + .addContainerGap(10, 10) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + moveUpAnswerVariantBtn, + 20, 20, 20) + .addComponent( + moveDownAnswerVariantBtn, + 20, 20, 20) + .addComponent( + insertAnswerVariantBtn, + 20, 20, 20) + .addComponent( + deleteAnswerVariantBtn, + 20, 20, 20) + .addComponent( + editAnswerVariantInHtmlEditor, + 20, 20, 20)) + .addContainerGap())); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout( + getContentPane()); + getContentPane().setLayout(layout); + layout + .setHorizontalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent( + partsPanel, + 600, + 600, + Short.MAX_VALUE) + .addComponent( + captionPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addComponent( + generalPanel, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE) + .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING, + layout + .createSequentialGroup() + .addComponent( + okButton) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + cancelButton))) + .addContainerGap())); + layout + .setVerticalGroup(layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + generalPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + captionPanel, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent( + partsPanel, + 300, + 300, + 300) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup( + layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) + .addContainerGap( + javax.swing.GroupLayout.DEFAULT_SIZE, + Short.MAX_VALUE))); + + this.getRootPane().setDefaultButton(okButton); + + pack(); + } + + @Override + protected void saveChanges() { + CompileQModel itemModel = new CompileQModel(); + + manifestItem.setTitle(titleTextField.getText()); + + CompileQData data = itemModel.getData(manifestItem); + + if (sameAsTitleCheckBox.isSelected()) { + data.setCaption(titleTextField.getText()); + } else { + data.setCaption(captionTextField.getText()); + } + + data.setQuestion(questionTextField.getText()); + + data.setAnswers(simpleQuestionAnswersDataModel); + + itemModel.updateItemResource(manifestItem, true); + } + + @Override + public void stateChanged(ChangeEvent e) { + if (e.getSource() == sameAsTitleCheckBox) { + if (sameAsTitleCheckBox.isSelected() + && captionTextField.isEnabled()) { + captionTextField.setText(titleTextField.getText()); + } + captionTextField.setEnabled(!sameAsTitleCheckBox.isSelected()); + } + + if (e.getSource() == oneAnswerCheckBox) { + simpleQuestionAnswersDataModel.setSingleVariant(oneAnswerCheckBox + .isSelected()); + } + } + +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineCellRenderer.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,45 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Component; + +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.table.TableCellRenderer; + +class MultiLineCellRenderer extends JTextArea implements TableCellRenderer { + /** + * + */ + private static final long serialVersionUID = 1L; + + public MultiLineCellRenderer() { + setLineWrap(true); + setWrapStyleWord(true); + setOpaque(true); + } + + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + if (isSelected) { + setForeground(table.getSelectionForeground()); + setBackground(table.getSelectionBackground()); + } else { + setForeground(table.getForeground()); + setBackground(table.getBackground()); + } + setFont(table.getFont()); + if (hasFocus) { + setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); + if (table.isCellEditable(row, column)) { + setForeground(UIManager.getColor("Table.focusCellForeground")); + setBackground(UIManager.getColor("Table.focusCellBackground")); + } + } else { + setBorder(new EmptyBorder(1, 2, 1, 2)); + } + setText((value == null) ? "" : value.toString()); + return this; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/MultiLineTableCellEditor.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,51 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Component; + +import javax.swing.AbstractCellEditor; +import javax.swing.BorderFactory; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.JTextArea; +import javax.swing.table.TableCellEditor; + +public class MultiLineTableCellEditor extends AbstractCellEditor implements TableCellEditor +{ + /** + * + */ + private static final long serialVersionUID = 1L; + protected JTextArea myEditor; + protected JScrollPane myScrollPane; + + public MultiLineTableCellEditor() { + myEditor = new JTextArea(); + myEditor.setWrapStyleWord(true); + myEditor.setLineWrap(true); + myEditor.setOpaque(true); +// myEditor.setRows(3); + myScrollPane = new JScrollPane(myEditor); + myScrollPane.setBorder(BorderFactory.createEmptyBorder()); + myScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); + myScrollPane.getVerticalScrollBar().setFocusable(false); + myScrollPane.getHorizontalScrollBar().setFocusable(false); + } + + public Component getTableCellEditorComponent(JTable table, Object value, + boolean isSelected, int row, int column) + { + myEditor.setBackground(isSelected ? table.getSelectionBackground() : table.getBackground()); + myEditor.setForeground(isSelected ? table.getSelectionForeground() : table.getForeground()); + myEditor.setText(value == null ? "" : value.toString()); + + myScrollPane.setBounds(0,0,table.getColumnModel().getColumn(column).getWidth(), 0); + int thisHeight = myEditor.getPreferredSize().height+2; + table.setRowHeight(row, thisHeight); + + return myScrollPane; + } + + public Object getCellEditorValue() { + return myEditor.getText(); + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/CompileQ/PartOptionsPanel.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,83 @@ +package edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ; + +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.LayoutManager; + +import javax.swing.JCheckBox; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; +import javax.swing.table.TableCellRenderer; + +public class PartOptionsPanel extends JPanel implements TableCellRenderer { + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + if (isSelected) { + setForeground(table.getSelectionForeground()); + setBackground(table.getSelectionBackground()); + + readOnlyCheckBox.setForeground(table.getSelectionForeground()); + isAnswerCheckBox.setForeground(table.getSelectionForeground()); + isVisibleCheckBox.setForeground(table.getSelectionForeground()); + + readOnlyCheckBox.setBackground(table.getSelectionBackground()); + isAnswerCheckBox.setBackground(table.getSelectionBackground()); + isVisibleCheckBox.setBackground(table.getSelectionBackground()); + } else { + setForeground(table.getForeground()); + setBackground(table.getBackground()); + + readOnlyCheckBox.setForeground(table.getForeground()); + isAnswerCheckBox.setForeground(table.getForeground()); + isVisibleCheckBox.setForeground(table.getForeground()); + + readOnlyCheckBox.setBackground(table.getBackground()); + isAnswerCheckBox.setBackground(table.getBackground()); + isVisibleCheckBox.setBackground(table.getBackground()); + } + setFont(table.getFont()); + if (hasFocus) { + setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); + if (table.isCellEditable(row, column)) { + setForeground(UIManager.getColor("Table.focusCellForeground")); + setBackground(UIManager.getColor("Table.focusCellBackground")); + } + } else { + setBorder(new EmptyBorder(1, 2, 1, 2)); + } + + + + return this; + } + + /** + * + */ + private static final long serialVersionUID = 1L; + + public JCheckBox readOnlyCheckBox; + public JCheckBox isAnswerCheckBox; + public JCheckBox isVisibleCheckBox; + + public PartOptionsPanel() { + initComponents(); + } + + private void initComponents() { + LayoutManager layout = new FlowLayout(FlowLayout.LEFT); + setLayout(layout); + + readOnlyCheckBox = new JCheckBox("read only"); + isAnswerCheckBox = new JCheckBox("is answer"); + isVisibleCheckBox = new JCheckBox("is visible"); + + add(readOnlyCheckBox); + add(isAnswerCheckBox); + add(isVisibleCheckBox); + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/TreeDataModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/TreeDataModel.java 2008-05-14 18:01:48 UTC (rev 137) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/TreeDataModel.java 2008-05-14 21:05:22 UTC (rev 138) @@ -133,16 +133,16 @@ } public void treeNodesDeleted(TreeItem item) { + TreePath path = getItemPath(item); + + int[] indicies = new int[1]; + indicies[0] = item.getParent().getChildIndex(item); + Object[] children = new Object[1]; + children[0] = item; + TreeModelEvent event = new TreeModelEvent(this, path.getParentPath(), indicies, children); + for (int i=0; i < listeners.size(); i++){ TreeModelListener listener = listeners.get(i); - - TreePath path = getItemPath(item); - - int[] indicies = new int[1]; - indicies[0] = item.getParent().getChildIndex(item); - Object[] children = new Object[1]; - children[0] = item; - TreeModelEvent event = new TreeModelEvent(this, path.getParentPath(), indicies, children); listener.treeNodesRemoved(event); } } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQData.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,108 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; + +import java.io.Reader; +import java.util.Iterator; + +import org.dom4j.Document; +import org.dom4j.DocumentHelper; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; + +public class CompileQData extends ItemData { + @Override + public String marshal(TreeItem anItem) { + Document doc = DocumentHelper.createDocument(); + Element root = doc.addElement("SimpleQuestion"); + root.addElement("caption").setText(getCaption()); + root.addElement("question").setText(getQuestion()); + + root.addElement("ShowOnSummaryPage").setText( + String.valueOf(getShowOnSummaryPage())); + + Element ans = root.addElement("answers"); + + ans.addAttribute("singleVariant", String.valueOf(getAnswers() + .getSingleVariant())); + + Iterator<CompileQPart> iter = getAnswers().answers.iterator(); + + while (iter.hasNext()) { + CompileQPart answer = iter.next(); + + Element ansEl = ans.addElement("answer"); + ansEl + .addAttribute("point", String.valueOf(answer + .getAnswerPoint())); + ansEl.setText(answer.getAnswerText()); + } + + return doc.asXML(); + } + + private CompileQPartsTableModel answers = new CompileQPartsTableModel(); + private String caption = ""; + private String question = ""; + + public CompileQPartsTableModel getAnswers() { + return answers; + } + public void setAnswers(CompileQPartsTableModel answers) { + this.answers = answers; + } + public String getCaption() { + return caption; + } + public void setCaption(String caption) { + this.caption = caption; + } + public String getQuestion() { + return question; + } + public void setQuestion(String question) { + this.question = question; + } + + @SuppressWarnings("unchecked") + public boolean unmarshal(Reader res, TreeItem anItem) { + SAXReader reader = new SAXReader(); + + Document doc = null; + try { + doc = reader.read(res); + + Element root = doc.getRootElement(); + Element answers = root.element("answers"); + + setCaption(root.elementTextTrim("caption")); + setQuestion(root.elementTextTrim("question")); + + boolean showOnSP = Boolean.valueOf(root + .elementTextTrim("ShowOnSummaryPage")); + setShowOnSummaryPage(showOnSP); + + getAnswers().setSingleVariant( + answers.attributeValue("singleVariant").equalsIgnoreCase( + "true")); + + getAnswers().answers.clear(); + + Iterator<Element> iter = answers.elementIterator("answer"); + while (iter.hasNext()) { + Element answer = iter.next(); + CompileQPart ans = new CompileQPart(answer + .getText()); + ans.setAnswerPoint(Double.valueOf(answer + .attributeValue("point"))); + getAnswers().answers.add(ans); + } + } catch (Exception e) { + e.printStackTrace(); + return false; + } + + return true; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQModel.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,101 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; + +import java.util.Iterator; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.FFManifest.resource.Resource; +import edu.lnu.FireFly.WebEditor.WebEditor; +import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.CompileQPropertiestsDlg; +import edu.lnu.FireFly.WebEditor.ItemModels.ItemData; +import edu.lnu.FireFly.WebEditor.ItemModels.ResourcedItemModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Template; + +public class CompileQModel extends ResourcedItemModel { + @Override + protected String getDefaultTitle() { + return "New compile question"; + } + + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return true; + } + + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return true; + } + + public CompileQModel() { + modelName = "CompileQModel"; + } + + @Override + public boolean canAddToItem(TreeItem parent) { + // TODO Auto-generated method stub + return true; + } + + @Override + public boolean canConvertItem(TreeItem parent) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void ConfigureItem(TreeItem item) { + new CompileQPropertiestsDlg().showDialog(item); + + TreeDataModel.getInstance().treeNodesChanged(item); + WebEditor.tree.setSelectionPath(null); + WebEditor.tree.setSelectionPath(TreeDataModel.getInstance() + .getItemPath(item)); + } + + public CompileQData getData(TreeItem item) { + return ((CompileQData) getItemData(item)); + } + + @Override + public boolean isRemovable() { + return true; + } + + protected ItemData createItemDataInstance() { + return new CompileQData(); + } + + @Override + protected void updateResourceFile(TreeItem anItem) { + Resource resource = WebEditor.instance.getManifest().resources + .findResourceByIdentifier(((Item) anItem).identifierref); + + Template template = new Template(resource.getFullHref(), this); + + CompileQData itemData = getData(anItem); + + template.setProperty("Caption", itemData.getCaption()); + template.setProperty("Question", itemData.getQuestion()); + + Iterator<CompileQPart> iter = itemData.getAnswers().answers + .iterator(); + String answers = "\r\nsetSingleVariant(" + + itemData.getAnswers().getSingleVariant() + ");\r\n"; + + while (iter.hasNext()) { + CompileQPart answer = iter.next(); + answers += "addAnswer(\"" + answer.getAnswerText().replace("\"", "\\\"") + "\", " + + answer.getAnswerPoint() + ");" + "\r\n"; + } + + template.setProperty("answers", answers); + template.updateResource(); + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } +} \ No newline at end of file Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPart.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,26 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; + +public class CompileQPart { + private String answerText = ""; + private double answerPoint = 0; + + public CompileQPart(String answerText) { + this.answerText = answerText; + } + + public double getAnswerPoint() { + return answerPoint; + } + + public String getAnswerText() { + return answerText; + } + + public void setAnswerPoint(double answerPoint) { + this.answerPoint = answerPoint; + } + + public void setAnswerText(String answerText) { + this.answerText = answerText; + } +} Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/CompileQ/CompileQPartsTableModel.java 2008-05-14 21:05:22 UTC (rev 138) @@ -0,0 +1,174 @@ +package edu.lnu.FireFly.WebEditor.ItemModels.CompileQ; + +import java.util.ArrayList; +import java.util.List; + +import javax.swing.table.DefaultTableModel; + +import edu.lnu.FireFly.WebEditor.GUI.Dialogs.CompileQ.PartOptionsPanel; + +public class CompileQPartsTableModel extends DefaultTableModel { + /** + * + */ + private static final long serialVersionUID = 1L; + + private boolean singleVariant = false; + + public List<CompileQPart> answers = new ArrayList<CompileQPart>(); + + @Override + public Class<?> getColumnClass(int col) { + + if (col == 2){ + return PartOptionsPanel.class; + } + + return Object.class; + } + + @Override + public int getColumnCount() { + return 3; + } + + @Override + public String getColumnName(int arg0) { + switch (arg0) { + case 0: + return "#"; + case 1: + return "Part content"; + default: + return "Options"; + } + } + + @Override + public int getRowCount() { + + if (answers == null) { + return 0; + } + + int answersCount = answers.size(); + + + + return answersCount > 0 ? answersCount : 1; + } + + @Override + public Object getValueAt(int row, int col) { + if (row == answers.size()) { + return ""; + } + + switch (col) { + case 0: + return row + 1; + case 1: + return answers.get(row).getAnswerText(); + case 2: + return answers.get(row).getAnswerPoint(); + default: + return ""; + } + } + + @Override + public boolean isCellEditable(int row, int col) { + switch (col){ + case 0: + return false; + case 1: + return true; + case 2: + return false; + default: + return false; + } + } + + public boolean isSingleVariant() { + return singleVariant; + } + + public void setSingleVariant(boolean singleVariant) { + this.singleVariant = singleVariant; + } + + public boolean getSingleVariant() { + return this.singleVariant; + } + + @Override + public void setValueAt(Object arg0, int arg1, int arg2) { + if (arg1 == answers.size()) { + answers.add(new CompileQPart("")); + } + + switch (arg2) { + case 1: + answers.get(arg1).setAnswerText(arg0.toString()); + break; + case 2: + try { + double value = 0; + if (!arg0.toString().equals("")) { + value = Double.valueOf(arg0.toString()); + } + answers.get(arg1).setAnswerPoint(value); + } catch (NumberFormatException e) { + System.out.print("Entered value is't a double value!\n"); + } + break; + } + + fireTableRowsUpdated(arg1, arg1); + } + + public void deleteRow(int selectedRow) { + if (selectedRow < answers.size() && selectedRow >= 0) { + answers.remove(selectedRow); + fireTableRowsDeleted(selectedRow, selectedRow); + } + } + + public void insertRow(int selectedRow) { + if (selectedRow >= answers.size()){ + selectedRow--; + } + + answers.add(selectedRow + 1, new CompileQPart("")); + fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + } + + public boolean moveUp(int selectedRow) { + if (selectedRow < 1 || selectedRow >= answers.size()){ + return false; + } + + CompileQPart answer = answers.get(selectedRow); + answers.set(selectedRow, answers.get(selectedRow - 1)); + answers.set(selectedRow - 1, answer); + + fireTableRowsUpdated(selectedRow - 1, selectedRow); + + return true; + } + + public boolean moveDown(int selectedRow) { + if (selectedRow < 0 || selectedRow >= answers.size() - 1){ + return false; + } + + CompileQPart answer = answers.get(selectedRow); + answers.set(selectedRow, answers.get(selectedRow + 1)); + answers.set(selectedRow + 1, answer); + + fireTableRowsUpdated(selectedRow + 1, selectedRow); + + return true; + } +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-14 18:01:48 UTC (rev 137) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-14 21:05:22 UTC (rev 138) @@ -5,6 +5,7 @@ import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; +import edu.lnu.FireFly.WebEditor.ItemModels.CompileQ.CompileQModel; import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; @@ -81,9 +82,10 @@ static { ItemModels.clear(); + ItemModels.registerModel(new ChapterModel()); ItemModels.registerModel(new LectureModel()); ItemModels.registerModel(new SimpleQuestionModel()); - ItemModels.registerModel(new ChapterModel()); + ItemModels.registerModel(new CompileQModel()); ItemModels.registerModel(new OrganizationModel()); ItemModels.registerModel(new SummaryPageModel()); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-14 18:01:48 UTC (rev 137) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-14 21:05:22 UTC (rev 138) @@ -65,8 +65,8 @@ @Override public void remove(TreeItem anItem) { + TreeDataModel.getInstance().treeNodesDeleted(anItem); anItem.getParent().removeChild(anItem); - TreeDataModel.getInstance().treeNodesDeleted(anItem); deleteResource(anItem); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-14 18:05:29
|
Revision: 137 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=137&view=rev Author: sem62 Date: 2008-05-14 11:01:48 -0700 (Wed, 14 May 2008) Log Message: ----------- Added deleting, inserting and moving answer variant in SimpleQ model Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java WebEditor/template/global/SummaryPage.js Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-13 19:33:14 UTC (rev 136) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/Dialogs/SimpleQuestionPropertiestsDlg.java 2008-05-14 18:01:48 UTC (rev 137) @@ -4,6 +4,7 @@ import java.awt.event.ActionListener; import javax.swing.JButton; +import javax.swing.ListSelectionModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.DefaultTableColumnModel; @@ -36,6 +37,10 @@ private javax.swing.JButton editCaptionInHtmlBtn; private javax.swing.JButton editQuestionInHtmlBtn; private javax.swing.JButton editAnswerVariantInHtmlEditor; + private javax.swing.JButton insertAnswerVariantBtn; + private javax.swing.JButton deleteAnswerVariantBtn; + private javax.swing.JButton moveUpAnswerVariantBtn; + private javax.swing.JButton moveDownAnswerVariantBtn; private SimpleQuestionAnswersDataModel simpleQuestionAnswersDataModel; private javax.swing.JTextField currentAnswerVariant; @@ -57,20 +62,72 @@ if (arg0.getSource() == editCaptionInHtmlBtn) { editTextFieldInHtmlEditor(captionTextField); } - + if (arg0.getSource() == editAnswerVariantInHtmlEditor) { int selectedRow = answersTable.getSelectedRow(); - - if (selectedRow < 0){ + + if (selectedRow < 0) { return; } - - String text = answersTable.getModel().getValueAt(selectedRow, 1).toString(); - + + String text = answersTable.getModel().getValueAt(selectedRow, 1) + .toString(); + currentAnswerVariant.setText(text); editTextFieldInHtmlEditor(currentAnswerVariant); } + + if (arg0.getSource() == insertAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.insertRow(selectedRow); + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow + 1); + } + + if (arg0.getSource() == deleteAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + simpleQuestionAnswersDataModel.deleteRow(selectedRow); + + if (selectedRow >= simpleQuestionAnswersDataModel.getRowCount()){ + selectedRow--; + } + + answersTable.getSelectionModel().setSelectionInterval(selectedRow, + selectedRow); + } + if (arg0.getSource() == moveUpAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveUp(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow - 1, selectedRow - 1); + } + } + + if (arg0.getSource() == moveDownAnswerVariantBtn) { + int selectedRow = answersTable.getSelectedRow(); + + if (selectedRow < 0) { + return; + } + + if (simpleQuestionAnswersDataModel.moveDown(selectedRow)){ + answersTable.getSelectionModel().setSelectionInterval(selectedRow + 1, selectedRow+1); + } + } } @Override @@ -91,18 +148,19 @@ .getAnswers(); dlg.answersTable.setModel(dlg.simpleQuestionAnswersDataModel); - DefaultTableColumnModel columnModel = (DefaultTableColumnModel)dlg.answersTable.getColumnModel(); + DefaultTableColumnModel columnModel = (DefaultTableColumnModel) dlg.answersTable + .getColumnModel(); columnModel.getColumn(0).setPreferredWidth(1); columnModel.getColumn(1).setPreferredWidth(300); columnModel.getColumn(2).setPreferredWidth(1); - + dlg.titleTextField.selectAll(); } @Override public void editedHtmlTextWasSet() { super.editedHtmlTextWasSet(); - + String text = currentAnswerVariant.getText(); int selectedRow = answersTable.getSelectedRow(); answersTable.getModel().setValueAt(text, selectedRow, 1); @@ -110,7 +168,7 @@ private void initComponents() { setTitle("Propertiests..."); - + generalPanel = new javax.swing.JPanel(); titleLabel = new javax.swing.JLabel(); titleTextField = new javax.swing.JTextField(); @@ -127,7 +185,17 @@ editCaptionInHtmlBtn = new JButton("..."); editQuestionInHtmlBtn = new JButton("..."); editAnswerVariantInHtmlEditor = new JButton("HTML Editor"); + insertAnswerVariantBtn = new JButton("Insert"); + deleteAnswerVariantBtn = new JButton("Delete"); + moveDownAnswerVariantBtn = new JButton("Down"); + moveUpAnswerVariantBtn = new JButton("Up"); + + insertAnswerVariantBtn.addActionListener(this); + deleteAnswerVariantBtn.addActionListener(this); + moveDownAnswerVariantBtn.addActionListener(this); + moveUpAnswerVariantBtn.addActionListener(this); + currentAnswerVariant = new javax.swing.JTextField(); captionTextField.addActionListener(this); @@ -138,8 +206,9 @@ editCaptionInHtmlBtn.addActionListener(this); editQuestionInHtmlBtn.addActionListener(this); editAnswerVariantInHtmlEditor.addActionListener(this); - + answersTable = new javax.swing.JTable(); + answersTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE); @@ -318,31 +387,57 @@ answersPanel); answersPanel.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup( - jPanel4Layout.createSequentialGroup() - .addComponent(editAnswerVariantInHtmlEditor) - .addContainerGap() - ) - .addGroup( + javax.swing.GroupLayout.Alignment.TRAILING).addGroup( jPanel4Layout.createSequentialGroup() - .addContainerGap() + .addComponent(moveUpAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(moveDownAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(insertAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent(deleteAnswerVariantBtn) + .addContainerGap(10, 10) + .addComponent( + editAnswerVariantInHtmlEditor) + .addContainerGap()).addGroup( + jPanel4Layout.createSequentialGroup().addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 364, - Short.MAX_VALUE) - .addContainerGap() - )); + Short.MAX_VALUE).addContainerGap())); - jPanel4Layout.setVerticalGroup(jPanel4Layout.createParallelGroup( - javax.swing.GroupLayout.Alignment.LEADING).addGroup( - jPanel4Layout.createSequentialGroup().addContainerGap() - .addComponent(jScrollPane1, - javax.swing.GroupLayout.DEFAULT_SIZE, 111, - Short.MAX_VALUE) - .addContainerGap(10, 10) - .addComponent(editAnswerVariantInHtmlEditor, 20, 20, 20) - .addContainerGap() - )); + jPanel4Layout + .setVerticalGroup(jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup( + jPanel4Layout + .createSequentialGroup() + .addContainerGap() + .addComponent( + jScrollPane1, + javax.swing.GroupLayout.DEFAULT_SIZE, + 111, Short.MAX_VALUE) + .addContainerGap(10, 10) + .addGroup( + jPanel4Layout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent( + moveUpAnswerVariantBtn, + 20, 20, 20) + .addComponent( + moveDownAnswerVariantBtn, + 20, 20, 20) + .addComponent( + insertAnswerVariantBtn, + 20, 20, 20) + .addComponent( + deleteAnswerVariantBtn, + 20, 20, 20) + .addComponent( + editAnswerVariantInHtmlEditor, + 20, 20, 20)) + .addContainerGap())); javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); @@ -431,8 +526,10 @@ .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( - cancelButton) - .addComponent(okButton)) + cancelButton, + 20, 20, 20) + .addComponent(okButton, + 20, 20, 20)) .addContainerGap( javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))); @@ -450,7 +547,7 @@ SimpleQuestionData data = itemModel.getData(manifestItem); - if (sameAsTitleCheckBox.isSelected()){ + if (sameAsTitleCheckBox.isSelected()) { data.setCaption(titleTextField.getText()); } else { data.setCaption(captionTextField.getText()); @@ -458,8 +555,7 @@ data.setQuestion(questionTextField.getText()); - data.setAnswers( - simpleQuestionAnswersDataModel); + data.setAnswers(simpleQuestionAnswersDataModel); itemModel.updateItemResource(manifestItem, true); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-13 19:33:14 UTC (rev 136) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionAnswersDataModel.java 2008-05-14 18:01:48 UTC (rev 137) @@ -1,24 +1,21 @@ package edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion; import java.util.ArrayList; +import java.util.List; -import javax.swing.event.TableModelEvent; -import javax.swing.event.TableModelListener; -import javax.swing.table.TableModel; +import javax.swing.table.DefaultTableModel; +public class SimpleQuestionAnswersDataModel extends DefaultTableModel { + /** + * + */ + private static final long serialVersionUID = 1L; -public class SimpleQuestionAnswersDataModel implements TableModel { private boolean singleVariant = false; - public ArrayList<SimpleQuestionAnswer> answers = new ArrayList<SimpleQuestionAnswer>(); - private ArrayList<TableModelListener> listeners = new ArrayList<TableModelListener>(); + public List<SimpleQuestionAnswer> answers = new ArrayList<SimpleQuestionAnswer>(); @Override - public void addTableModelListener(TableModelListener arg0) { - listeners.add(arg0); - } - - @Override public Class<?> getColumnClass(int arg0) { return Object.class; } @@ -42,7 +39,16 @@ @Override public int getRowCount() { - return answers.size() + 1; + + if (answers == null) { + return 0; + } + + int answersCount = answers.size(); + + + + return answersCount > 0 ? answersCount : 1; } @Override @@ -72,11 +78,6 @@ return singleVariant; } - @Override - public void removeTableModelListener(TableModelListener arg0) { - listeners.remove(arg0); - } - public void setSingleVariant(boolean singleVariant) { this.singleVariant = singleVariant; } @@ -107,10 +108,51 @@ } break; } + + fireTableRowsUpdated(arg1, arg1); + } + + public void deleteRow(int selectedRow) { + if (selectedRow < answers.size() && selectedRow >= 0) { + answers.remove(selectedRow); + fireTableRowsDeleted(selectedRow, selectedRow); + } + } + + public void insertRow(int selectedRow) { + if (selectedRow >= answers.size()){ + selectedRow--; + } - for (int i=0; i < listeners.size(); i++){ - TableModelEvent event = new TableModelEvent(this, arg1, arg1, arg2); - listeners.get(i).tableChanged(event); + answers.add(selectedRow + 1, new SimpleQuestionAnswer("")); + fireTableRowsInserted(selectedRow + 1, selectedRow + 1); + } + + public boolean moveUp(int selectedRow) { + if (selectedRow < 1 || selectedRow >= answers.size()){ + return false; } + + SimpleQuestionAnswer answer = answers.get(selectedRow); + answers.set(selectedRow, answers.get(selectedRow - 1)); + answers.set(selectedRow - 1, answer); + + fireTableRowsUpdated(selectedRow - 1, selectedRow); + + return true; } + + public boolean moveDown(int selectedRow) { + if (selectedRow < 0 || selectedRow >= answers.size() - 1){ + return false; + } + + SimpleQuestionAnswer answer = answers.get(selectedRow); + answers.set(selectedRow, answers.get(selectedRow + 1)); + answers.set(selectedRow + 1, answer); + + fireTableRowsUpdated(selectedRow + 1, selectedRow); + + return true; + } } Modified: WebEditor/template/global/SummaryPage.js =================================================================== --- WebEditor/template/global/SummaryPage.js 2008-05-13 19:33:14 UTC (rev 136) +++ WebEditor/template/global/SummaryPage.js 2008-05-14 18:01:48 UTC (rev 137) @@ -101,10 +101,10 @@ function write(completionStatus, title, min, max, raw, modelName){ rowNum++; - var percents = "0"; + var percents = "0 %"; if ((parseInt(min) || min == 0) && (parseInt(max) || max == 0) && (parseInt(raw) || raw == 0)){ if (max == min){ - percents = "? %"; + percents = "0 %"; } else { percents = 100 * (raw - min) / (max - min) + " %"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-13 19:33:07
|
Revision: 136 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=136&view=rev Author: sem62 Date: 2008-05-13 12:33:14 -0700 (Tue, 13 May 2008) Log Message: ----------- Fized bug: Before press save button was need to switch into html edit mode. Modified Paths: -------------- WebEditor/resources/HTMLedit.php Modified: WebEditor/resources/HTMLedit.php =================================================================== --- WebEditor/resources/HTMLedit.php 2008-05-13 16:49:15 UTC (rev 135) +++ WebEditor/resources/HTMLedit.php 2008-05-13 19:33:14 UTC (rev 136) @@ -4,6 +4,12 @@ var saved = false; function save(){ + SpawPGcore.htmlModeClick( + spaw_edit_field_obj.getTargetEditor(), + spaw_edit_field_obj.getToolbarItem('spaw_edit_field_mode_strip_1'), + this + ); + var s=document.getElementById("spaw_edit_field").value; opener.document.webeditor.setEditedHTML(s); saved=true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-13 16:49:10
|
Revision: 135 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=135&view=rev Author: sem62 Date: 2008-05-13 09:49:15 -0700 (Tue, 13 May 2008) Log Message: ----------- Added unknown item model for correct operations with courses, generated with third party editors. Modified Paths: -------------- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java Added Paths: ----------- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/GUI/CourseTreePopupMenu.java 2008-05-13 16:49:15 UTC (rev 135) @@ -202,7 +202,7 @@ .getShowOnSummaryPageMenuVisible()); limitConditionsMenu.setVisible(model - .getLimitConditionsMenuVisible()); + .getLimitConditionsMenuVisible(manifestItem)); showSummaryPageMenuItem.setVisible(model .getShowSummaryPageMenuVisible()); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Chapter/ChapterModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -1,7 +1,6 @@ package edu.lnu.FireFly.WebEditor.ItemModels.Chapter; import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.FFManifest.item.Item; import edu.lnu.FireFly.WebEditor.Data.SummaryPageManager; import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.GUI.Dialogs.ChapterPropertiestsDlg; @@ -59,7 +58,7 @@ } @Override - public boolean getLimitConditionsMenuVisible() { + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { return false; } @@ -87,21 +86,6 @@ } @Override - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } - - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=Chapter")) { - return true; - } - - return false; - } - - @Override public boolean isRemovable() { return true; } @@ -110,7 +94,7 @@ public void remove(TreeItem aChapter) { if (!canDeleteChapter(aChapter)) { System.out - .print("This chapter contain items. Please, remove all childs and try again.\n"); + .print("This chapter contains items. Please, remove all childs and try again.\n"); return; } @@ -152,13 +136,6 @@ return result; } - @Override - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - - TreeDataModel.getInstance().treeNodesChanged(item); - } - public void setShowSummaryPage(TreeItem anItem, boolean state) { ChapterItemData itemData = getData(anItem); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -16,6 +16,7 @@ import edu.lnu.FireFly.FFManifest.resource.Resource; import edu.lnu.FireFly.WebEditor.WebEditor; import edu.lnu.FireFly.WebEditor.Data.ManifestFactory; +import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public abstract class ItemModel { @@ -132,23 +133,38 @@ } } - public abstract boolean isApplaingForItem(TreeItem treeItem); + public boolean isApplaingForItem(TreeItem treeItem) { + if (treeItem.getClass() != Item.class) { + return false; + } + Item item = (Item) treeItem; + if (item.parameters != null + && item.parameters.contains("pageType=" + modelName)) { + return true; + } + + return false; + } + public final boolean isContainer() { return isContainerItem; } public abstract boolean isRemovable(); - public abstract void remove(TreeItem item); + public abstract void remove(TreeItem anItem); - public abstract void rename(TreeItem item, String newTitle); + public void rename(TreeItem item, String newTitle) { + ((Item) item).title = newTitle; + TreeDataModel.getInstance().treeNodesChanged(item); + } public abstract boolean synchronizeItemWithResource(TreeItem anItem, String location); public abstract boolean updateItemResource(TreeItem item, boolean updateSummaryPages); - public abstract boolean getLimitConditionsMenuVisible(); + public abstract boolean getLimitConditionsMenuVisible(TreeItem anItem); public abstract boolean getShowOnSummaryPageMenuVisible(); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ItemModels.java 2008-05-13 16:49:15 UTC (rev 135) @@ -5,10 +5,23 @@ import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; +import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; +import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; +import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; public class ItemModels { protected static ArrayList<ItemModel> registeredModels = new ArrayList<ItemModel>(); + + private static UnknownItemModel unknownModel = null; + public static UnknownItemModel getUnknownModel() { + if (unknownModel == null){ + unknownModel = new UnknownItemModel(); + } + + return unknownModel; + } + public static void registerModel(ItemModel model) { if (!registeredModels.contains(model)) { registeredModels.add(model); @@ -35,7 +48,7 @@ return registeredModels.get(i); } } - return null; + return getUnknownModel(); } public static void synchronizeAllItemDatas(TreeItem root) { @@ -65,4 +78,13 @@ public static void clear() { registeredModels.clear(); } + + static { + ItemModels.clear(); + ItemModels.registerModel(new LectureModel()); + ItemModels.registerModel(new SimpleQuestionModel()); + ItemModels.registerModel(new ChapterModel()); + ItemModels.registerModel(new OrganizationModel()); + ItemModels.registerModel(new SummaryPageModel()); + } } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/Lecture/LectureModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -22,7 +22,7 @@ } @Override - public boolean getLimitConditionsMenuVisible() { + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { return true; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/OrganizationModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -2,7 +2,6 @@ import edu.lnu.FireFly.FFManifest.Organization; import edu.lnu.FireFly.FFManifest.TreeItem; -import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; public class OrganizationModel extends ChapterModel{ @@ -41,13 +40,6 @@ } @Override - public void rename(TreeItem item, String newTitle) { - ((Organization)item).title = newTitle; - - TreeDataModel.getInstance().treeNodesChanged(item); - } - - @Override public boolean isRemovable() { return false; } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/ResourcedItemModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -59,29 +59,14 @@ } @Override - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } - - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=" + modelName)) { - return true; - } - - return false; - } - - @Override public boolean isRemovable() { return true; } @Override public void remove(TreeItem anItem) { - TreeDataModel.getInstance().treeNodesDeleted(anItem); anItem.getParent().removeChild(anItem); + TreeDataModel.getInstance().treeNodesDeleted(anItem); deleteResource(anItem); } @@ -108,12 +93,6 @@ return true; } - @Override - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - TreeDataModel.getInstance().treeNodesChanged(item); - } - public final boolean synchronizeItemWithResource(TreeItem anItem, String location) { String res = loadResource(location, anItem); Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SimpleQuestion/SimpleQuestionModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -19,7 +19,7 @@ } @Override - public boolean getLimitConditionsMenuVisible() { + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { return true; } @@ -58,31 +58,10 @@ } @Override - public boolean isApplaingForItem(TreeItem treeItem) { - if (treeItem.getClass() != Item.class) { - return false; - } - - Item item = (Item) treeItem; - if (item.parameters != null - && item.parameters.contains("pageType=SimpleQuestion")) { - return true; - } - - return false; - } - - @Override public boolean isRemovable() { return true; } - @Override - public void rename(TreeItem item, String newTitle) { - ((Item) item).title = newTitle; - TreeDataModel.getInstance().treeNodesChanged(item); - } - protected ItemData createItemDataInstance() { return new SimpleQuestionData(); } Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/SummaryPageModel/SummaryPageModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -21,7 +21,7 @@ } @Override - public boolean getLimitConditionsMenuVisible() { + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { return false; } Added: WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java (rev 0) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/ItemModels/UnknownItemModel.java 2008-05-13 16:49:15 UTC (rev 135) @@ -0,0 +1,81 @@ +package edu.lnu.FireFly.WebEditor.ItemModels; + +import edu.lnu.FireFly.FFManifest.TreeItem; +import edu.lnu.FireFly.FFManifest.item.Item; +import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; + +public class UnknownItemModel extends ItemModel { + + @Override + public void ConfigureItem(TreeItem item) { + System.out.println("Can't doing this operation with unknown item model"); + } + + @Override + public void addItem(TreeItem parent) { + System.out.println("Can't doing this operation with unknown item model"); + } + + @Override + public boolean canAddToItem(TreeItem parent) { + return false; + } + + @Override + public boolean canConvertItem(TreeItem parent) { + return false; + } + + @Override + protected ItemData createItemDataInstance() { + System.out.println("Can't doing this operation with unknown item model"); + return null; + } + + @Override + protected String getDefaultTitle() { + return "Unknown"; + } + + @Override + public boolean getLimitConditionsMenuVisible(TreeItem anItem) { + return anItem.getChildCount() == 0; + } + + @Override + public boolean getShowOnSummaryPageMenuVisible() { + return false; + } + + @Override + public boolean getShowSummaryPageMenuVisible() { + return false; + } + + @Override + protected void initializeDataForItem(Item anItem) { + System.out.println("Can't doing this operation with unknown item model"); + } + + @Override + public boolean isRemovable() { + return true; + } + + @Override + public void remove(TreeItem anItem) { + anItem.getParent().removeChild(anItem); + TreeDataModel.getInstance().treeNodesDeleted(anItem); + } + + @Override + public boolean synchronizeItemWithResource(TreeItem anItem, String location) { + return false; + } + + @Override + public boolean updateItemResource(TreeItem item, boolean updateSummaryPages) { + return false; + } + +} Modified: WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java =================================================================== --- WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-12 21:39:55 UTC (rev 134) +++ WebEditor/src/edu/lnu/FireFly/WebEditor/WebEditor.java 2008-05-13 16:49:15 UTC (rev 135) @@ -25,10 +25,6 @@ import edu.lnu.FireFly.WebEditor.GUI.TreeDataModel; import edu.lnu.FireFly.WebEditor.ItemModels.ItemModels; import edu.lnu.FireFly.WebEditor.ItemModels.OrganizationModel; -import edu.lnu.FireFly.WebEditor.ItemModels.Chapter.ChapterModel; -import edu.lnu.FireFly.WebEditor.ItemModels.Lecture.LectureModel; -import edu.lnu.FireFly.WebEditor.ItemModels.SimpleQuestion.SimpleQuestionModel; -import edu.lnu.FireFly.WebEditor.ItemModels.SummaryPageModel.SummaryPageModel; import edu.lnu.FireFly.WebEditor.WSClients.WebEditorServiceClient; public class WebEditor extends AppletWithWYSIWYGEditor implements @@ -111,12 +107,6 @@ threadForAautoSave.start(); initMenu(); - ItemModels.clear(); - ItemModels.registerModel(new LectureModel()); - ItemModels.registerModel(new SimpleQuestionModel()); - ItemModels.registerModel(new ChapterModel()); - ItemModels.registerModel(new OrganizationModel()); - ItemModels.registerModel(new SummaryPageModel()); try { openManifest(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-12 21:39:52
|
Revision: 134 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=134&view=rev Author: sem62 Date: 2008-05-12 14:39:55 -0700 (Mon, 12 May 2008) Log Message: ----------- Chapter model's result at summary is bold now. Modified Paths: -------------- WebEditor/template/LectureModel.html WebEditor/template/global/SummaryPage.js Modified: WebEditor/template/LectureModel.html =================================================================== --- WebEditor/template/LectureModel.html 2008-05-12 21:39:13 UTC (rev 133) +++ WebEditor/template/LectureModel.html 2008-05-12 21:39:55 UTC (rev 134) @@ -5,7 +5,7 @@ <script type="text/javascript" src="global/APIWrapper.js"></script> <script type="text/javascript"> function finish(){ - SetValue("cmi.completionStatus", "completed"); + SetValue("cmi.completion_status", "completed"); Terminate(); } </script> Modified: WebEditor/template/global/SummaryPage.js =================================================================== --- WebEditor/template/global/SummaryPage.js 2008-05-12 21:39:13 UTC (rev 133) +++ WebEditor/template/global/SummaryPage.js 2008-05-12 21:39:55 UTC (rev 134) @@ -130,13 +130,21 @@ var td = "<td class='tbl"; td += 1 - (rowNum % 2) + 1; td += "'>"; + + var startFormat = ""; + var endFormat = ""; + + if (modelName == "ChapterModel" || modelName == "OrganizationModel"){ + startFormat = "<B>"; + endFormat = "</B>"; + } document.write("<TR>" + td + rowNum + "<img src='global/images/" + completionStatus + ".gif'>"); document.write(td + title); - document.write(td + min); - document.write(td + max); - document.write(td + raw); - document.write(td + percents); + document.write(td + startFormat + min + endFormat); + document.write(td + startFormat + max + endFormat); + document.write(td + startFormat + raw + endFormat); + document.write(td + startFormat + percents + endFormat); } function openBlock(title, model, id){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-12 21:39:16
|
Revision: 133 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=133&view=rev Author: sem62 Date: 2008-05-12 14:39:13 -0700 (Mon, 12 May 2008) Log Message: ----------- Decrease waiting interval for terminating sco Modified Paths: -------------- webPlayer/src/behaviour/Navigation.java Modified: webPlayer/src/behaviour/Navigation.java =================================================================== --- webPlayer/src/behaviour/Navigation.java 2008-05-12 21:38:02 UTC (rev 132) +++ webPlayer/src/behaviour/Navigation.java 2008-05-12 21:39:13 UTC (rev 133) @@ -24,7 +24,7 @@ public static CmiElement request = new CmiElement(""); - private static final long TERMINATING_WAIT_INTERVAL = 10000; + private static final long TERMINATING_WAIT_INTERVAL = 1000; public static String getValue(String element) { return request.value; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <se...@us...> - 2008-05-12 21:38:04
|
Revision: 132 http://acmcontester.svn.sourceforge.net/acmcontester/?rev=132&view=rev Author: sem62 Date: 2008-05-12 14:38:02 -0700 (Mon, 12 May 2008) Log Message: ----------- foxed bug in navigation.js Modified Paths: -------------- webPlayer/resources/navigation.js Modified: webPlayer/resources/navigation.js =================================================================== --- webPlayer/resources/navigation.js 2008-05-12 20:23:44 UTC (rev 131) +++ webPlayer/resources/navigation.js 2008-05-12 21:38:02 UTC (rev 132) @@ -8,11 +8,11 @@ } function next(){ - document.player.Next(); + document.player.Terminate(""); } function navigate(loc) { - document.frames['ContentFrame'].document.location = loc; + frames['ContentFrame'].document.location = loc; } function showNextBtn() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |