use of net.parostroj.timetable.model.Group in project grafikon by jub77.
the class LSGroup method createGroup.
public Group createGroup(TrainDiagram diagram) throws LSException {
Group group = diagram.getPartFactory().createGroup(id);
// expected value -> null (for compatibility before version 4.18.2)
group.setName(name);
group.getAttributes().add(attributes.createAttributes(diagram::getObjectById));
return group;
}
use of net.parostroj.timetable.model.Group in project grafikon by jub77.
the class GroupsComboBox method updateGroups.
/**
* updates combobox.
*
* @param diagram diagram
* @param groupSelect selected group (depends on type)
*/
public void updateGroups(TrainDiagram diagram, GroupSelect groupSelect) {
if (groupSelect.getType() == Type.ALL && !allOption)
throw new IllegalArgumentException("Cannot set ALL.");
// clear
removeAllItems();
// add no and all
if (allOption) {
addItem(all);
}
addItem(none);
List<Group> groups = new ArrayList<Group>(diagram.getGroups());
this.sortGroups(groups);
for (Group group : groups) {
this.addItem(new Wrapper<Group>(group));
}
switch(groupSelect.getType()) {
case ALL:
setSelectedItem(all);
break;
case NONE:
setSelectedItem(none);
break;
default:
Wrapper<Group> w = new Wrapper<Group>(groupSelect.getGroup());
setSelectedItem(w);
break;
}
}
use of net.parostroj.timetable.model.Group in project grafikon by jub77.
the class ImportModelAction method backgroundAction.
@Override
protected void backgroundAction() {
setWaitMessage(ResourceLoader.getString("wait.message.import"));
setWaitDialogVisible(true);
long time = System.currentTimeMillis();
try {
ExportImportSelection selection = context.getAttribute("selection", ExportImportSelection.class);
TrainDiagram diagram = context.getAttribute("diagramImport", TrainDiagram.class);
TrainImportConfig trainImportConfig = context.getAttribute("trainImport", TrainImportConfig.class);
Map<ImportComponent, Collection<ObjectWithId>> map = selection.getObjectMap();
imports = new TrainDiagramPartImport(diagram, selection.getImportMatch(), selection.isImportOverwrite());
List<ObjectWithId> list = map.values().stream().sequential().flatMap(item -> item.stream().sequential()).collect(Collectors.toList());
if (list.isEmpty()) {
return;
}
if (trainImportConfig != null && trainImportConfig.isRemoveExisting()) {
// remove existing trains in group
Consumer<ObjectWithId> deleteProcess = item -> diagram.getTrains().remove(item);
Iterable<Train> filteredTrains = Iterables.filter(diagram.getTrains(), ModelPredicates.inGroup(trainImportConfig.getToGroup()));
processItems(filteredTrains, deleteProcess);
}
// import new objects
Consumer<ObjectWithId> importProcess = item -> {
ImportComponent i = ImportComponent.getByComponentClass(item.getClass());
if (i != null) {
ObjectWithId imported = imports.importPart(item);
processImportedObject(imported, trainImportConfig);
} else {
log.warn("No import for class {}", item.getClass().getName());
}
};
processItems(list, importProcess);
} finally {
log.debug("Import finished in {}ms", System.currentTimeMillis() - time);
setWaitDialogVisible(false);
}
}
use of net.parostroj.timetable.model.Group in project grafikon by jub77.
the class EditGroupsDialog method createNew.
@Override
protected Group createNew(String name) {
TrainDiagramPartFactory factory = element.getPartFactory();
Group newGroup = factory.createGroup(factory.createId());
newGroup.setName(name);
return newGroup;
}
use of net.parostroj.timetable.model.Group in project grafikon by jub77.
the class ImportModelAction method processImportedObject.
private void processImportedObject(ObjectWithId o, TrainImportConfig trainImportConfig) {
// if train import -> move to appropriate group
if (o instanceof Train && trainImportConfig != null) {
Group destGroup = trainImportConfig.getToGroup();
((Train) o).getAttributes().setRemove(Train.ATTR_GROUP, destGroup);
}
}
Aggregations