use of edu.cmu.cs.hcii.cogtool.model.DefaultModelGeneratorState in project cogtool by cogtool.
the class SEDemoUI method showSelectionContextMenu.
/**
* Mouse event occurred on the table, use the selected item to
* display an appropriate menu.
*/
public void showSelectionContextMenu(int x, int y) {
contextSelection.deselectAll();
Table historyTable = view.getHistoryTable();
org.eclipse.swt.graphics.Point atPoint = historyTable.toControl(x, y);
TableItem ti = historyTable.getItem(atPoint);
if ((ti != null) && (ti.getData() instanceof DefaultModelGeneratorState)) {
contextSelection.setSelectedState((DefaultModelGeneratorState) ti.getData());
} else {
// this is the result Step, so no selection
historyTable.select(historyTable.getItemCount() - 1);
}
showContextMenu(contextSelection, true);
}
use of edu.cmu.cs.hcii.cogtool.model.DefaultModelGeneratorState in project cogtool by cogtool.
the class SEDemoUI method addSelectionChangeListeners.
/**
* Add the selection Change event listeners.
*/
protected void addSelectionChangeListeners() {
SWTselectionChangeHandler = new SelectionListener() {
public void widgetSelected(SelectionEvent evt) {
SWTList swtList = view.getScriptEditorList();
TableItem[] selectedItems = swtList.getSelectionObject();
for (TableItem selectedItem : selectedItems) {
// TODO: Currently supports only single selection.
Object data = selectedItem.getData();
if (data instanceof Frame) {
selection.setSelectedState(null);
} else {
// should be instanceof DefaultModelGeneratorState!!!
AScriptStep step = ((DefaultModelGeneratorState) data).getScriptStep();
if (step instanceof HearScriptStep) {
if (interaction.askEditFrame()) {
Frame f = step.getCurrentFrame();
performAction(DesignEditorLID.EditFrame, f);
}
TableItem previousSelectedRow = swtList.getRowItem(selection.getPreviousSelection());
selection.setSelectedState(previousSelectedRow);
} else {
selection.setSelectedState(selectedItem);
}
}
}
centerSelectedRegion();
setViewEnabledState(selection, ListenerIdentifierMap.NORMAL);
// Let selection change handle changing the frame
}
public void widgetDefaultSelected(SelectionEvent evt) {
SWTList swtList = view.getScriptEditorList();
TableItem[] selectedItems = swtList.getSelectionObject();
// TODO: Currently supports only single selection.
for (TableItem selectedItem : selectedItems) {
Object data = selectedItem.getData();
if (data instanceof DefaultModelGeneratorState) {
DefaultModelGeneratorState stepState = (DefaultModelGeneratorState) data;
AScriptStep step = stepState.getScriptStep();
// In case we need this; not a context selection
// in truth, but we can re-use the structure.
contextSelection.setSelectedState(stepState);
if (editable) {
if (step instanceof DelayScriptStep) {
performAction(SEDemoLID.ChangeWaitProperties, contextSelection);
} else if (step instanceof ThinkScriptStep) {
performAction(SEDemoLID.ChangeThinkProperties, contextSelection);
} else if (isEditable(step)) {
performAction(SEDemoLID.Edit, contextSelection);
}
}
}
}
}
};
view.addSWTListSelectionHandler(SWTselectionChangeHandler);
AlertHandler selectionChangeHandler = new AlertHandler() {
public void handleAlert(EventObject alert) {
SEDemoSelectionState.StepStateSelectionChange event = (SEDemoSelectionState.StepStateSelectionChange) alert;
if (event != null) {
if (event.selected) {
DefaultModelGeneratorState stepState = event.changedState;
uiModel.setCurrentOverride(script, script.getPreviousState(stepState));
Frame resultFrame = null;
if (stepState != null) {
resultFrame = stepState.getScriptStep().getCurrentFrame();
} else {
resultFrame = script.getDemonstration().getResultFrame();
}
try {
setCurrentFrame(resultFrame);
} catch (GraphicsUtil.ImageException ex) {
throw new RcvrImageException("Changing current demonstration frame", ex);
}
} else {
// deselect item.
uiModel.setCurrentOverride(script, script.getLastState());
}
}
}
};
selection.addHandler(this, SEDemoSelectionState.StepStateSelectionChange.class, selectionChangeHandler);
}
use of edu.cmu.cs.hcii.cogtool.model.DefaultModelGeneratorState in project cogtool by cogtool.
the class ScriptViewerUI method addSelectionChangeListeners.
/**
* Add the selection Change event listeners.
*/
protected void addSelectionChangeListeners() {
SWTselectionChangeHandler = new SelectionListener() {
public void widgetSelected(SelectionEvent evt) {
SWTList swtList = view.getScriptEditorList();
TableItem[] selectedItems = swtList.getSelectionObject();
for (TableItem selectedItem : selectedItems) {
// TODO: Currently supports only single selection.
Object data = selectedItem.getData();
if (data instanceof Frame) {
selection.setSelectedState(null);
} else {
selection.setSelectedState(selectedItem);
}
}
setViewEnabledState(selection, ListenerIdentifierMap.NORMAL);
// Let selection change handle changing the frame
}
public void widgetDefaultSelected(SelectionEvent evt) {
SWTList swtList = view.getScriptEditorList();
TableItem[] selectedItems = swtList.getSelectionObject();
// TODO: Currently supports only single selection.
for (TableItem selectedItem : selectedItems) {
Object data = selectedItem.getData();
if (data instanceof DefaultModelGeneratorState) {
Script s = (Script) selectedItem.getData(SWTListGroupScript.SCRIPT_DATA_KEY);
DefaultModelGeneratorState stepState = (DefaultModelGeneratorState) data;
// In case we need this; not a context selection
// in truth, but we can re-use the structure.
contextSelection.setSelectedState(stepState);
performAction(ProjectLID.EditScript, s);
}
}
}
};
view.addSWTListSelectionHandler(SWTselectionChangeHandler);
AlertHandler selectionChangeHandler = new AlertHandler() {
public void handleAlert(EventObject alert) {
SEDemoSelectionState.StepStateSelectionChange event = (SEDemoSelectionState.StepStateSelectionChange) alert;
if (event != null) {
if (event.selected) {
DefaultModelGeneratorState stepState = event.changedState;
Frame resultFrame = null;
Script script = getSelectedScript(stepState);
AUndertaking t = script.getDemonstration().getTaskApplication().getTask();
if (stepState != null) {
resultFrame = stepState.getScriptStep().getCurrentFrame();
} else if (script != null) {
resultFrame = script.getDemonstration().getResultFrame();
}
DefaultModelGeneratorState overrideState = script.getPreviousState(stepState);
if (overrideState == null) {
TaskGroup group = (TaskGroup) task;
List<AUndertaking> siblingTasks = group.getUndertakings();
int currentTaskIndex = siblingTasks.indexOf(t);
CognitiveModelGenerator modelGen = script.getModelGenerator();
while ((overrideState == null) && (0 <= --currentTaskIndex)) {
AUndertaking prevSibling = siblingTasks.get(currentTaskIndex);
TaskApplication ta = project.getTaskApplication(prevSibling, design);
if (ta != null) {
script = ta.getScript(modelGen);
if (script != null) {
overrideState = script.getLastState();
}
}
}
}
uiModel.setCurrentOverride(script, overrideState);
try {
setCurrentFrame(resultFrame);
} catch (GraphicsUtil.ImageException ex) {
throw new RcvrImageException("Changing current demonstration frame", ex);
}
}
}
}
};
selection.addHandler(this, SEDemoSelectionState.StepStateSelectionChange.class, selectionChangeHandler);
}
use of edu.cmu.cs.hcii.cogtool.model.DefaultModelGeneratorState in project cogtool by cogtool.
the class ScriptViewerUI method showSelectionContextMenu.
/**
* Mouse event occurred on the table, use the selected item to
* display an appropriate menu.
*
*/
public void showSelectionContextMenu(int x, int y) {
contextSelection.deselectAll();
Table historyTable = view.getHistoryTable();
org.eclipse.swt.graphics.Point atPoint = historyTable.toControl(x, y);
TableItem ti = historyTable.getItem(atPoint);
if ((ti != null) && (ti.getData() instanceof DefaultModelGeneratorState)) {
contextSelection.setSelectedState((DefaultModelGeneratorState) ti.getData());
} else {
// this is the result Step, so no selection
historyTable.select(historyTable.getItemCount() - 1);
}
showContextMenu(contextSelection, true);
}
use of edu.cmu.cs.hcii.cogtool.model.DefaultModelGeneratorState in project cogtool by cogtool.
the class SEDemoController method assignActions.
@Override
public void assignActions() {
super.assignActions();
ui.setAction(SEDemoLID.Undo, new UndoController.UndoAction(undoMgr, interaction));
ui.setAction(SEDemoLID.Redo, new UndoController.RedoAction(undoMgr, interaction));
ui.setAction(SEDemoLID.SetMouseHand, createSetMouseHandAction());
ui.setAction(SEDemoLID.SetHandLocation, createSetHandLocationAction());
ui.setAction(SEDemoLID.PerformTransition, createPerformTransitionAction());
ui.setAction(SEDemoLID.InsertThink, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return performInsertThink(selection);
}
});
ui.setAction(SEDemoLID.ChangeThinkProperties, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return performChangeThink(selection);
}
});
ui.setAction(SEDemoLID.InsertDelay, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return performInsertDelay(selection);
}
});
ui.setAction(SEDemoLID.ChangeWaitProperties, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return performChangeDelay(selection);
}
});
ui.setAction(SEDemoLID.Edit, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
DefaultModelGeneratorState selectedState = selection.getSelectedState();
if (selectedState == null) {
interaction.protestNoStep();
return false;
}
AScriptStep step = selectedState.getScriptStep();
if (step instanceof ThinkScriptStep) {
return performChangeThink(selection);
}
if (step instanceof DelayScriptStep) {
return performChangeDelay(selection);
}
if ((step instanceof ActionScriptStep) && step.isDemonstrated() && step.isInsertedByUser()) {
return performEditSelfTransition((ActionScriptStep) step);
}
step = step.getOwner();
if ((step instanceof ActionScriptStep) && step.isDemonstrated() && step.isInsertedByUser()) {
return performEditSelfTransition((ActionScriptStep) step);
}
interaction.protestNotEditable();
return false;
}
});
ui.setAction(SEDemoLID.InsertDrive, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return performInsertDrive(selection);
}
});
ui.setAction(SEDemoLID.InsertLookAt, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoUI.LookAtTransition.class;
}
public boolean performAction(Object prms) {
SEDemoUI.LookAtTransition lookAt = (SEDemoUI.LookAtTransition) prms;
return performInsertLookAt(lookAt.selection, lookAt.target);
}
});
ui.setAction(SEDemoLID.InsertSelfTransition, createInsertSelfTransitionAction());
ui.setAction(SEDemoLID.Delete, new IListenerAction() {
public Class<?> getParameterClass() {
return SEDemoSelectionState.class;
}
public boolean performAction(Object prms) {
// If not the "most recent" step state, warn
// the user that this will remove all
// items after as well, unless it's a think,
// look-at or other non-transitioning item.
SEDemoSelectionState selection = (SEDemoSelectionState) prms;
return deleteScriptStep(selection);
}
});
ui.setAction(SEDemoLID.RegenerateScript, createRegenerateScriptAction());
ui.setAction(SEDemoLID.RecomputeScript, createSaveScriptChangesAction());
ui.setAction(SEDemoLID.ExportScriptToCSV, createExportScriptToCSVAction());
ui.setAction(DesignEditorLID.EditFrame, createEditFrameAction());
ui.setAction(SEDemoLID.ShowModelVisualization, createShowModelVisualizationAction());
}
Aggregations