Skip to content

Commit

Permalink
Add method to forceWritableProperties before saveSettings to force so…
Browse files Browse the repository at this point in the history
…me properties to be written in xml even if default for all tools, override per tool/list provided by team
  • Loading branch information
aymanhab committed Dec 28, 2024
1 parent 7a81358 commit 7bfb70e
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 5 deletions.
4 changes: 4 additions & 0 deletions Gui/opensim/rice_cnl/src/org/opensim/rcnl/BaseToolPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,10 @@ static void replaceOpenSimDocumentTags(String pathName) {
//------------------------------------------------------------------------
// Load/Save Settings Actions
//------------------------------------------------------------------------
// Override this method to change behavior of writing properties only if different from default
// Per issue #40 https://github.com/aymanhab/opensim-gui-rcnl/issues/40
void forceWritableProperties(OpenSimObject dObject) {
}

class LoadSettingsAction extends AbstractAction {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,9 @@ public void pressedCancel() {
@Override
public void saveSettings(String fileName) {
String fullFilename = FileUtils.addExtensionIfNeeded(fileName, ".xml");
jointPersonalizationToolModel.getToolAsObject().print(fullFilename);
OpenSimObject obj = jointPersonalizationToolModel.getToolAsObject();
forceWritableProperties(obj);
obj.print(fullFilename);
replaceOpenSimDocumentTags(fullFilename);
}

Expand All @@ -333,6 +335,24 @@ public void setSettingsFileDescription(String description) {
super.setSettingsFileDescription(description); //To change body of generated methods, choose Tools | Templates.
}

@Override
void forceWritableProperties(OpenSimObject dObject) {
super.forceWritableProperties(dObject); //To change body of generated methods, choose Tools | Templates.
// For each JMPTask in tasklist, force write of parent_frame_transformation, child_frame_transformation
// dObject is an instance of JointModelPersonalizationTool
AbstractProperty ap = dObject.getPropertyByName("JMPTaskList");
PropertyObjectList olist = PropertyObjectList.getAs(ap);
for (int i=0; i< olist.size(); i++){
OpenSimObject ithTask = olist.getValue(i);
AbstractProperty apJnts = ithTask.getPropertyByName("JMPJointSet");
PropertyObjectList poJointList = PropertyObjectList.updAs(apJnts);
for (int j=0; j<poJointList.size(); j++){
poJointList.getValue(j).updPropertyByName("parent_frame_transformation").setValueIsDefault(false);
poJointList.getValue(j).updPropertyByName("child_frame_transformation").setValueIsDefault(false);
}
}
}


// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton addJointTaskButton;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -703,7 +703,18 @@ public void setSettingsFileDescription(String description) {
@Override
public void saveSettings(String fileName) {
String fullFilename = FileUtils.addExtensionIfNeeded(fileName, ".xml");
mtpPersonalizationToolModel.getToolAsObject().print(fullFilename);
OpenSimObject obj = mtpPersonalizationToolModel.getToolAsObject();
forceWritableProperties(obj);
obj.print(fullFilename);
replaceOpenSimDocumentTags(fullFilename);
}

@Override
void forceWritableProperties(OpenSimObject dObject) {
super.forceWritableProperties(dObject); //To change body of generated methods, choose Tools | Templates.
dObject.updPropertyByName("MuscleTendonLengthInitialization").setValueIsDefault(false);
dObject.updPropertyByName("MTPSynergyExtrapolation").setValueIsDefault(false);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -635,8 +635,16 @@ public void setSettingsFileDescription(String description) {
@Override
public void saveSettings(String fileName) {
String fullFilename = FileUtils.addExtensionIfNeeded(fileName, ".xml");
ncpPersonalizationToolModel.getToolAsObject().print(fullFilename);
OpenSimObject obj = ncpPersonalizationToolModel.getToolAsObject();
forceWritableProperties(obj);
obj.print(fullFilename);
replaceOpenSimDocumentTags(fullFilename);
}

@Override
void forceWritableProperties(OpenSimObject dObject) {
super.forceWritableProperties(dObject); //To change body of generated methods, choose Tools | Templates.
dObject.updPropertyByName("MuscleTendonLengthInitialization").setValueIsDefault(false);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -1097,8 +1097,22 @@ public void valueChanged(ListSelectionEvent lse) {
@Override
public void saveSettings(String fileName) {
String fullFilename = FileUtils.addExtensionIfNeeded(fileName, ".xml");
treatmentOptimizationToolModel.getToolAsObject().print(fullFilename);
replaceOpenSimDocumentTags(fullFilename);
OpenSimObject obj = treatmentOptimizationToolModel.getToolAsObject();
forceWritableProperties(obj);
obj.print(fullFilename);
replaceOpenSimDocumentTags(fullFilename);
}

@Override
void forceWritableProperties(OpenSimObject dObject) {
super.forceWritableProperties(dObject); //To change body of generated methods, choose Tools | Templates.
AbstractProperty ap = dObject.getPropertyByName("RCNLCostTermSet");
PropertyObjectList olist = PropertyObjectList.getAs(ap);
for (int i=0; i< olist.size(); i++){
OpenSimObject costterm = olist.getValue(i);
costterm.updPropertyByName("max_allowable_error").setValueIsDefault(false);
}
}


}

0 comments on commit 7bfb70e

Please sign in to comment.