Search in sources :

Example 1 with TrainColorChooser

use of net.parostroj.timetable.output2.gt.TrainColorChooser in project grafikon by jub77.

the class CirculationPane method setModel.

public void setModel(ApplicationModel model) {
    this.delegate = new TCDelegate(model) {

        private TCDetailsViewDialog editDialog;

        @Override
        public void showEditDialog(JComponent component) {
            if (editDialog == null) {
                editDialog = new TCDetailsViewDialog(GuiComponentUtils.getWindow(component), true);
            }
            editDialog.setLocationRelativeTo(component);
            editDialog.updateValues(this, diagram);
            editDialog.setVisible(true);
        }

        @Override
        public TrainsCycleType getType() {
            return type;
        }

        @Override
        public void handleEvent(Action action, TrainsCycle cycle, Train train) {
            if (action == Action.DIAGRAM_CHANGE) {
                diagram = delegate.getTrainDiagram();
                updateTypes();
                this.fireEvent(Action.REFRESH, null);
            }
        }
    };
    trainsCyclesPane.setModel(this.delegate, new TrainColorChooser() {

        @Override
        public Color getIntervalColor(TimeInterval interval) {
            if (!interval.getTrain().isCovered(type, interval)) {
                return Color.black;
            } else {
                return Color.gray;
            }
        }
    });
    model.getMediator().addColleague(new GTEventsReceiverColleague() {

        @Override
        public void processTrainDiagramEvent(Event event) {
            if (event.getType() == Event.Type.ADDED && event.getObject() instanceof TrainsCycleType) {
                Wrapper<TrainsCycleType> wrapper = new Wrapper<>((TrainsCycleType) event.getObject());
                typesComboBox.addItem(wrapper);
                typesComboBox.setSelectedItem(wrapper);
            } else if (event.getType() == Event.Type.REMOVED && event.getObject() instanceof TrainsCycleType) {
                typesComboBox.removeItem(new Wrapper<>((TrainsCycleType) event.getObject()));
            }
        }
    });
}
Also used : Wrapper(net.parostroj.timetable.gui.wrappers.Wrapper) GTEventsReceiverColleague(net.parostroj.timetable.mediator.GTEventsReceiverColleague) TCDelegate(net.parostroj.timetable.gui.views.TCDelegate) Color(java.awt.Color) JComponent(javax.swing.JComponent) TrainColorChooser(net.parostroj.timetable.output2.gt.TrainColorChooser) Event(net.parostroj.timetable.model.events.Event) ItemEvent(java.awt.event.ItemEvent) TCDetailsViewDialog(net.parostroj.timetable.gui.dialogs.TCDetailsViewDialog)

Aggregations

Color (java.awt.Color)1 ItemEvent (java.awt.event.ItemEvent)1 JComponent (javax.swing.JComponent)1 TCDetailsViewDialog (net.parostroj.timetable.gui.dialogs.TCDetailsViewDialog)1 TCDelegate (net.parostroj.timetable.gui.views.TCDelegate)1 Wrapper (net.parostroj.timetable.gui.wrappers.Wrapper)1 GTEventsReceiverColleague (net.parostroj.timetable.mediator.GTEventsReceiverColleague)1 Event (net.parostroj.timetable.model.events.Event)1 TrainColorChooser (net.parostroj.timetable.output2.gt.TrainColorChooser)1