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. |