|
From: <lo...@us...> - 2010-03-23 12:32:03
|
Revision: 2396
http://qtitools.svn.sourceforge.net/qtitools/?rev=2396&view=rev
Author: loccy
Date: 2010-03-23 12:31:55 +0000 (Tue, 23 Mar 2010)
Log Message:
-----------
MQ: Add support for normalMaximum, and a couple of kludges to work around issues with table edits on Mac SWT.
Modified Paths:
--------------
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQModel.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQOutcomeDeclaration.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/utilities/JAXBCommentFactory.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/CorrectResponseView.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/DefaultValueView.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/InlineChoiceInteractionView.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/MQMain.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/OutcomeDeclarationView.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/ResponseDeclarationView.java
Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/TemplateDeclarationView.java
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQModel.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQModel.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQModel.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -1121,6 +1121,8 @@
String stringBaseTypeValue = "";
String stringCardinalityValue = "";
+
+ String normalMaximum = "";
if (o1.getBaseType() != null) {
stringBaseTypeValue = o1.getBaseType().value().toString();
@@ -1129,10 +1131,15 @@
stringCardinalityValue = o1.getCardinality().value()
.toString();
}
+
+ if (o1.getIdentifier().equals("SCORE"))
+ {
+ normalMaximum = String.valueOf(o1.getNormalMaximum());
+ }
MQOutcomeDeclaration o2 = new MQOutcomeDeclaration(o1
.getIdentifier(), stringBaseTypeValue,
- stringCardinalityValue);
+ stringCardinalityValue, normalMaximum);
if (defaultValueHelper!=null) {
o2.setDefaultValue(defaultValueHelper);
@@ -2767,6 +2774,15 @@
o2.setCardinality(ct);
o2.setIdentifier(o1.getIdentifier());
+
+ if (o1.getIdentifier().equals("SCORE"))
+ {
+ System.out.println("Found score");
+ if (!((o1.getNormalMaximum() == null) || (o1.getNormalMaximum().equals(""))))
+ {
+ o2.setNormalMaximum(Double.valueOf(o1.getNormalMaximum()));
+ }
+ }
//o2.setMasteryValue(o1.getMasteryValue());
//o2.setInterpretation(o1.getInterpretation());
//o2.setLongInterpretation(o1.getLongInterpretation());
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQOutcomeDeclaration.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQOutcomeDeclaration.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/model/MQOutcomeDeclaration.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -81,7 +81,18 @@
/** The base type. */
String baseType="";
+
+ /** The normalMaximum */
+ String normalMaximum="";
+ public String getNormalMaximum() {
+ return normalMaximum;
+ }
+
+ public void setNormalMaximum(String normalMaximum) {
+ this.normalMaximum = normalMaximum;
+ }
+
/**
* Instantiates a new outcome declaration helper.
*/
@@ -98,10 +109,11 @@
* @param defaultValue the default value
*/
public MQOutcomeDeclaration(String identifier, String baseType,
- String cardinality) {
+ String cardinality, String normalMaximum) {
this.identifier = identifier;
this.baseType = baseType;
this.cardinality = cardinality;
+ this.normalMaximum = normalMaximum;
}
/**
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/utilities/JAXBCommentFactory.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/utilities/JAXBCommentFactory.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/utilities/JAXBCommentFactory.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -409,29 +409,55 @@
return validateAgainstSchema(new StreamSource(new ByteArrayInputStream(xmlString.getBytes())));
}
+
+ public static Object[] validateAgainstSchema(File xmlFile)
+ {
+ return validateAgainstSchema(new StreamSource(xmlFile),true);
+ }
+
/**
* Validates an XML file against the mathassess schema. There are probably better classes to locate
* this method, but hey.
* @param xmlFile to validate
+ * @param relaxed whether to use the relaxed schema
* @return null if valid, or a 3 value object array if invalid. [0] = line of error, [1] = column of error, [2] = error description
*/
- public static Object[] validateAgainstSchema(File xmlFile)
+ public static Object[] validateAgainstSchema(File xmlFile, boolean relaxed)
{
- return validateAgainstSchema(new StreamSource(xmlFile));
+ return validateAgainstSchema(new StreamSource(xmlFile),relaxed);
}
/**
+ * Validate against the STRICT schema.
+ * @param xmlFile
+ * @return
+ */
+ public static Object[] validateAgainstSchema(Source xmlFile)
+ {
+ return validateAgainstSchema(xmlFile, true);
+ }
+
+ /**
* Validates an XML file against the mathassess schema. There are probably better classes to locate
* this method, but hey.
* @param xmlFile to validate
+ * @param relaxed whether to use the relaxed schema
* @return null if valid, or a 3 value object array if invalid. [0] = line of error, [1] = column of error, [2] = error description
*/
- public static Object[] validateAgainstSchema(Source xmlFile)
+ public static Object[] validateAgainstSchema(Source xmlFile, boolean relaxed)
{
// validate against schema
//Source xmlFile = null;
//xmlFile = new StreamSource(file);
- File schemaFile = new File(MQMain.tmpdirpath+File.separator+"schemas"+File.separator+"mathassess_mq.xsd");
+ File schemaFile;
+ if (!relaxed)
+ {
+ schemaFile = new File(MQMain.tmpdirpath+File.separator+"schemas"+File.separator+"mathassess_mq.xsd");
+ }
+ else
+ {
+ schemaFile = new File(MQMain.tmpdirpath+File.separator+"schemas"+File.separator+"mathassess.xsd");
+ }
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = null;
try {
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/CorrectResponseView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/CorrectResponseView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/CorrectResponseView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -413,7 +413,11 @@
}
public void mouseDown(MouseEvent arg0) {
-
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
}
public void mouseUp(MouseEvent arg0) {
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/DefaultValueView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/DefaultValueView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/DefaultValueView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -420,6 +420,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
}
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/InlineChoiceInteractionView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/InlineChoiceInteractionView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/InlineChoiceInteractionView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -608,6 +608,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
if (inlineChoiceInteractionHelper!=null){
controller.searchAndReplaceNodeByID(inlineChoiceInteractionHelper.getInlineChoiceInteractionType());
}
@@ -628,6 +634,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
if (inlineChoiceInteractionHelper!=null){
controller.searchAndReplaceNodeByID(inlineChoiceInteractionHelper.getInlineChoiceInteractionType());
}
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/MQMain.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/MQMain.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/MQMain.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -503,8 +503,8 @@
lastdir = file.getAbsolutePath().replace(
file.getName(), "");
- // check whether it's valid
- Object[] validationResults = JAXBCommentFactory.validateAgainstSchema(new File(selected));
+ // check whether it's valid against the (relaxed) schema
+ Object[] validationResults = JAXBCommentFactory.validateAgainstSchema(new File(selected),true);
if (validationResults == null)
{
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/OutcomeDeclarationView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/OutcomeDeclarationView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/OutcomeDeclarationView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -177,7 +177,7 @@
MQOutcomeDeclaration declarationHelper =
new MQOutcomeDeclaration("NEWDECLARATION", "string",
- "single");
+ "single","");
int index = arrayList.indexOf(selectedrow);
@@ -425,6 +425,10 @@
}
public void mouseDown(MouseEvent arg0) {
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
controller.setMQOutcomeDeclaration(arrayList);
}
@@ -443,6 +447,11 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT library on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
controller.setMQOutcomeDeclaration(arrayList);
}
@@ -730,6 +739,37 @@
});
+ // normalMaximum
+
+ column = new TableViewerColumn(tableViewer, SWT.NONE);
+ column.getColumn().setWidth(50);
+ column.getColumn().setText("Maximum score");
+ column.getColumn().setMoveable(true);
+ column.setLabelProvider(new ColumnLabelProvider() {
+
+ @Override
+ public String getText(Object element) {
+ MQOutcomeDeclaration outcomeVariables = (MQOutcomeDeclaration) element;
+ return outcomeVariables.getNormalMaximum() + "";
+ }
+ });
+
+ column.setEditingSupport(new AbstractEditingSupport(tableViewer) {
+
+ @Override
+ protected void doSetValue(Object element, Object value) {
+ MQOutcomeDeclaration declarationHelper = (MQOutcomeDeclaration) element;
+ declarationHelper.setNormalMaximum(value.toString());
+ }
+
+ @Override
+ protected Object getValue(Object element) {
+ MQOutcomeDeclaration declarationHelper = (MQOutcomeDeclaration) element;
+ return declarationHelper.getNormalMaximum() + "";
+ }
+
+ });
+
tableViewer.getTable().setLinesVisible(true);
tableViewer.getTable().setHeaderVisible(true);
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/ResponseDeclarationView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/ResponseDeclarationView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/ResponseDeclarationView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -424,6 +424,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
controller.setMQResponseDeclaration(arrayList);
}
@@ -443,6 +449,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
controller.setMQResponseDeclaration(arrayList);
}
Modified: Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/TemplateDeclarationView.java
===================================================================
--- Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/TemplateDeclarationView.java 2010-03-22 12:21:55 UTC (rev 2395)
+++ Mathqurate/trunk/mathqurate/src/main/java/org/qtitools/mathqurate/view/TemplateDeclarationView.java 2010-03-23 12:31:55 UTC (rev 2396)
@@ -418,6 +418,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
controller.setMQTemplateDeclaration(arrayList);
}
@@ -437,6 +443,12 @@
}
public void mouseDown(MouseEvent arg0) {
+ // bodge for dodgy SWT on Mac
+ if (System.getProperty("os.name").contains("Mac"))
+ {
+ tableViewer.editElement(tableViewer.getElementAt(0), 1);
+ }
+
controller.setMQTemplateDeclaration(arrayList);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|