use of net.parostroj.timetable.model.TrainDiagram in project grafikon by jub77.
the class TrainsCycleValidator method validate.
@Override
public boolean validate(Event event) {
boolean validated = false;
if (event.getSource() instanceof TrainsCycle) {
validated = handleTrainsCycleEvent(event);
}
if (event.getSource() instanceof TrainDiagram && event.getObject() instanceof TrainsCycle && event.getType() == Event.Type.REMOVED) {
TrainsCycle deleted = (TrainsCycle) event.getObject();
// handle sequence of circulations
if (deleted.isPartOfSequence()) {
deleted.removeFromSequence();
}
validated = true;
}
return validated;
}
use of net.parostroj.timetable.model.TrainDiagram in project grafikon by jub77.
the class ImportAction method actionPerformed.
@Override
public void actionPerformed(ActionEvent event) {
final Component parent = GuiComponentUtils.getTopLevelComponent(event.getSource());
ActionContext context = new ActionContext(parent);
ActionHandler handler = ActionHandler.getInstance();
context.setAttribute("fileType", supportLibrary ? FileChooserFactory.Type.GTM_GTML : FileChooserFactory.Type.GTM);
context.setAttribute("diagramImport", model.getDiagram());
handler.execute(new OpenFileModelAction(context));
handler.execute(new SelectLoadAction(context));
handler.execute(new LoadDiagramModelAction(context));
handler.execute(new LoadLibraryModelAction(context));
handler.execute(new EventDispatchModelAction(context) {
@Override
protected void eventDispatchAction() {
TrainDiagram diagram = (TrainDiagram) context.getAttribute("diagram");
boolean cancelled = false;
Predicate<ObjectWithId> filter = null;
if (trainImport) {
groupDialog.setLocationRelativeTo(parent);
groupDialog.showDialog(diagram, null, model.getDiagram(), null);
if (groupDialog.isSelected()) {
final Group group = groupDialog.getSelectedFrom();
filter = new TrainGroupFilter(group);
} else {
cancelled = !groupDialog.isSelected();
}
}
context.setAttribute("trainFilter", filter);
context.setCancelled(cancelled);
if (trainImport) {
context.setAttribute("trainImport", new ImportModelAction.TrainImportConfig(groupDialog.isRemoveExistingTrains(), groupDialog.getSelectedFrom(), groupDialog.getSelectedTo()));
}
}
});
handler.execute(new ImportSelectionModelAction(context));
handler.execute(new ImportModelAction(context));
}
use of net.parostroj.timetable.model.TrainDiagram in project grafikon by jub77.
the class OutputPM method operationCreate.
@Operation(path = "create")
public boolean operationCreate() {
TrainDiagram diagram = diagramRef != null ? diagramRef.get() : null;
if (diagram != null) {
newOutput = diagram.getPartFactory().createOutput(IdGenerator.getInstance().getId());
newOutput.setName(LocalizedString.fromString(name.getCurrentEdit().get().translate()));
newOutput.setTemplate(templates.getValue());
newOutput.setLocale(locale.getValue());
newOutput.setKey(key.getText());
}
return true;
}
use of net.parostroj.timetable.model.TrainDiagram in project grafikon by jub77.
the class LoadSave method loadTrainDiagram.
private TrainDiagram loadTrainDiagram(ModelVersion modelVersion, Properties metadata, Reader reader, LSTrainTypeList types) throws LSException, IOException {
LSSerializer serializer = LSSerializer.getLSSerializer(modelVersion);
TrainDiagram diagram = serializer.load(reader, types);
for (TrainDiagramFilter filter : loadFilters) {
diagram = filter.filter(diagram, modelVersion);
}
(new AfterLoadCheck()).check(diagram);
return diagram;
}
use of net.parostroj.timetable.model.TrainDiagram in project grafikon by jub77.
the class CopyTrainPM method writeResult.
private void writeResult() {
// create copy of the train
Train train = this.trainRef.get();
if (train != null) {
TrainDiagram diagram = train.getDiagram();
int lTime = this.time.getTime();
if (lTime == -1) {
// select midnight if the time is not correct
lTime = 0;
}
TrainBuilder builder = new TrainBuilder();
String name = this.number.getText();
Train newTrain = reversed.getBoolean() ? builder.createReverseTrain(IdGenerator.getInstance().getId(), name, lTime, train) : builder.createTrain(IdGenerator.getInstance().getId(), name, lTime, train);
// add train to diagram
diagram.getTrains().add(newTrain);
}
}
Aggregations