Search in sources :

Example 6 with Place

use of mudmap2.backend.Place in project mudmap2 by Neop.

the class PathConnectDialog method create.

@Override
void create() {
    setMinimumSize(new Dimension(600, 600));
    setLayout(new GridBagLayout());
    worldtab = new WorldTab(parentFrame, place.getLayer().getWorld(), true);
    worldtab.getWorldPanel().resetHistory(new WorldCoordinate(place.getLayer().getId(), place.getX(), place.getY()));
    worldtab.getWorldPanel().setCursorForced(true);
    worldtab.getWorldPanel().resetHistory(place.getCoordinate());
    worldtab.getWorldPanel().setFocusForced(false);
    ((MapPainterDefault) worldtab.getWorldPanel().getMappainter()).setGridEnabled(false);
    GridBagConstraints constraints = new GridBagConstraints();
    constraints.gridx = constraints.gridy = 0;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.weightx = 1;
    constraints.weighty = 1;
    constraints.gridwidth = 4;
    add(worldtab, constraints);
    // Place config
    constraints = new GridBagConstraints();
    constraints.gridx = 0;
    constraints.gridy = 1;
    constraints.insets = new Insets(4, 4, 4, 4);
    constraints.fill = GridBagConstraints.HORIZONTAL;
    constraints.weightx = 1.0;
    add(new JLabel(place.toString()), constraints);
    LinkedList<String> directions1 = new LinkedList<>();
    for (String s : Path.directions) if (place.getExit(s) == null)
        directions1.add(s);
    constraints.gridx = 1;
    constraints.weightx = 0.0;
    directionComboBox1 = new JComboBox<>(directions1.toArray(new String[directions1.size()]));
    directionComboBox1.setEditable(true);
    add(directionComboBox1, constraints);
    constraints.gridx = 0;
    constraints.gridy = 2;
    constraints.weightx = 1.0;
    add(labelOtherPlace = new JLabel(), constraints);
    constraints.gridx = 1;
    constraints.weightx = 0.0;
    directionComboBox2 = new JComboBox<>();
    updateDirectionComboBox2();
    directionComboBox2.setEditable(true);
    add(directionComboBox2, constraints);
    // Buttons
    constraints.insets = new Insets(2, 2, 2, 2);
    constraints.gridx = 0;
    constraints.gridy = 3;
    constraints.weightx = 1.0;
    JButton button_cancel = new JButton("Cancel");
    add(button_cancel, constraints);
    button_cancel.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dispose();
        }
    });
    constraints.gridx = 1;
    constraints.gridy = 3;
    JButton button_ok = new JButton("Ok");
    add(button_ok, constraints);
    getRootPane().setDefaultButton(button_ok);
    button_ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            save();
            dispose();
        }
    });
    worldtab.getWorldPanel().addCursorListener(new MapCursorListener() {

        @Override
        public void placeSelected(Place p) {
            if (p != place) {
                other = p;
                labelOtherPlace.setText(other.toString());
                updateDirectionComboBox2();
            }
        }

        @Override
        public void placeDeselected(Layer layer, int x, int y) {
        }
    });
    pack();
    setLocation(getParent().getX() + (getParent().getWidth() - getWidth()) / 2, getParent().getY() + (getParent().getHeight() - getHeight()) / 2);
}
Also used : WorldTab(mudmap2.frontend.WorldTab) GridBagConstraints(java.awt.GridBagConstraints) WorldCoordinate(mudmap2.backend.WorldCoordinate) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) ActionEvent(java.awt.event.ActionEvent) JButton(javax.swing.JButton) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) Layer(mudmap2.backend.Layer) LinkedList(java.util.LinkedList) MapCursorListener(mudmap2.frontend.GUIElement.WorldPanel.MapCursorListener) ActionListener(java.awt.event.ActionListener) MapPainterDefault(mudmap2.frontend.GUIElement.WorldPanel.MapPainterDefault) Place(mudmap2.backend.Place)

Example 7 with Place

use of mudmap2.backend.Place in project mudmap2 by Neop.

the class PathConnectNeighborsDialog method save.

private void save() {
    for (Entry<Place, JCheckBox> entry : neighbor_checkboxes.entrySet()) {
        if (entry.getValue().isSelected()) {
            int dx = entry.getKey().getX() - place.getX();
            int dy = entry.getKey().getY() - place.getY();
            // get direction
            String dir = Path.getDir(dx, dy);
            // connect path
            place.connectPath(new Path(place, dir, entry.getKey(), Path.getOppositeDir(dir)));
        }
    }
    getParent().repaint();
}
Also used : JCheckBox(javax.swing.JCheckBox) Path(mudmap2.backend.Path) Place(mudmap2.backend.Place)

Example 8 with Place

use of mudmap2.backend.Place in project mudmap2 by Neop.

the class PlaceDialog method create.

/**
 * Creates the dialog
 */
@Override
void create() {
    setLayout(new GridLayout(0, 2, 4, 4));
    add(new JLabel("Name"));
    if (place != null)
        textfield_name = new JTextField(place.getName());
    else
        textfield_name = new JTextField();
    add(textfield_name);
    place_group_null = new PlaceGroup("none", null);
    add(new JLabel("Place group"));
    combobox_place_group = new JComboBox<>();
    combobox_place_group.addItem(place_group_null);
    for (PlaceGroup a : world.getPlaceGroups()) combobox_place_group.addItem(a);
    if (place != null && place.getPlaceGroup() != null)
        combobox_place_group.setSelectedItem(place.getPlaceGroup());
    add(combobox_place_group);
    add(new JLabel("Risk level"));
    combobox_risk = new JComboBox<>();
    for (RiskLevel rl : world.getRiskLevels()) combobox_risk.addItem(rl);
    if (place != null && place.getRiskLevel() != null)
        combobox_risk.setSelectedItem(place.getRiskLevel());
    add(combobox_risk);
    Integer min_lvl = 0, max_lvl = 0;
    if (place != null) {
        min_lvl = place.getRecLevelMin();
        max_lvl = place.getRecLevelMax();
    }
    add(new JLabel("Minimal level"));
    spinner_rec_lvl_min = new JSpinner();
    spinner_rec_lvl_min.setModel(new SpinnerNumberModel(max(min_lvl, 0), 0, 1000, 1));
    add(spinner_rec_lvl_min);
    if (min_lvl < 0)
        spinner_rec_lvl_min.setEnabled(false);
    add(new JLabel());
    add(checkbox_lvl_min = new JCheckBox("Show min level"));
    checkbox_lvl_min.setSelected(min_lvl >= 0);
    checkbox_lvl_min.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            spinner_rec_lvl_min.setEnabled(((JCheckBox) ae.getSource()).isSelected());
        }
    });
    add(new JLabel("Maximum level"));
    spinner_rec_lvl_max = new JSpinner();
    spinner_rec_lvl_max.setModel(new SpinnerNumberModel(max(max_lvl, 0), 0, 1000, 1));
    add(spinner_rec_lvl_max);
    if (max_lvl < 0)
        spinner_rec_lvl_max.setEnabled(false);
    add(new JLabel());
    add(checkbox_lvl_max = new JCheckBox("Show max level"));
    checkbox_lvl_max.setSelected(max_lvl >= 0);
    checkbox_lvl_max.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent ae) {
            spinner_rec_lvl_max.setEnabled(((JCheckBox) ae.getSource()).isSelected());
        }
    });
    JButton button_cancel = new JButton("Cancel");
    add(button_cancel);
    button_cancel.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            dispose();
        }
    });
    JButton button_ok = new JButton("Ok");
    add(button_ok);
    getRootPane().setDefaultButton(button_ok);
    button_ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            save();
            dispose();
        }
    });
    // listener for escape key
    getRootPane().registerKeyboardAction(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            dispose();
        }
    }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
    pack();
    setLocation(getParent().getX() + (getParent().getWidth() - getWidth()) / 2, getParent().getY() + (getParent().getHeight() - getHeight()) / 2);
}
Also used : ActionEvent(java.awt.event.ActionEvent) JButton(javax.swing.JButton) JLabel(javax.swing.JLabel) JTextField(javax.swing.JTextField) SpinnerNumberModel(javax.swing.SpinnerNumberModel) JCheckBox(javax.swing.JCheckBox) GridLayout(java.awt.GridLayout) ActionListener(java.awt.event.ActionListener) JSpinner(javax.swing.JSpinner) PlaceGroup(mudmap2.backend.PlaceGroup) RiskLevel(mudmap2.backend.RiskLevel)

Example 9 with Place

use of mudmap2.backend.Place in project mudmap2 by Neop.

the class PlaceDialog method save.

/**
 * Saves the place data
 */
public void save() {
    // if(!textfield_name.getText().isEmpty()){ // name not empty
    try {
        if (layer == null)
            layer = world.getNewLayer();
        // create place if it doesn't exist else just set the name
        if (place == null)
            layer.put(place = new Place(textfield_name.getText(), px, py, layer));
        else
            place.setName(textfield_name.getText());
        PlaceGroup a = (PlaceGroup) combobox_place_group.getSelectedItem();
        // replace null group with null
        place.setPlaceGroup(a != place_group_null ? a : null);
        place.setRiskLevel((RiskLevel) combobox_risk.getSelectedItem());
        if (checkbox_lvl_min.isSelected()) {
            place.setRecLevelMin((Integer) spinner_rec_lvl_min.getValue());
        } else {
            place.setRecLevelMin(-1);
        }
        if (checkbox_lvl_max.isSelected()) {
            place.setRecLevelMax((Integer) spinner_rec_lvl_max.getValue());
        } else {
            place.setRecLevelMax(-1);
        }
    } catch (Exception ex) {
        Logger.getLogger(PlaceDialog.class.getName()).log(Level.SEVERE, null, ex);
    }
    // }
    getParent().repaint();
}
Also used : PlaceGroup(mudmap2.backend.PlaceGroup) Place(mudmap2.backend.Place)

Example 10 with Place

use of mudmap2.backend.Place in project mudmap2 by Neop.

the class PlaceGroupDialog method save.

private void save() {
    // add new PlaceGroup to world and place
    if (new_group) {
        placeGroup = new PlaceGroup(textfield_name.getText(), colorchooserbutton.getColor());
        world.addPlaceGroup(placeGroup);
        if (place != null && place_group == null)
            place.setPlaceGroup(placeGroup);
    } else {
        // modify PlaceGroup
        placeGroup.setName(textfield_name.getText());
        placeGroup.setColor(colorchooserbutton.getColor());
    }
    // assign to all places
    if (place_group != null)
        for (Place pl : place_group) pl.setPlaceGroup(placeGroup);
    getParent().repaint();
}
Also used : PlaceGroup(mudmap2.backend.PlaceGroup) Place(mudmap2.backend.Place)

Aggregations

Place (mudmap2.backend.Place)20 Layer (mudmap2.backend.Layer)14 ActionEvent (java.awt.event.ActionEvent)7 ActionListener (java.awt.event.ActionListener)7 JLabel (javax.swing.JLabel)7 Path (mudmap2.backend.Path)7 PlaceGroup (mudmap2.backend.PlaceGroup)7 WorldCoordinate (mudmap2.backend.WorldCoordinate)7 Color (java.awt.Color)6 GridBagConstraints (java.awt.GridBagConstraints)6 GridBagLayout (java.awt.GridBagLayout)6 JButton (javax.swing.JButton)6 Insets (java.awt.Insets)5 Pair (mudmap2.utils.Pair)5 HashMap (java.util.HashMap)4 JCheckBox (javax.swing.JCheckBox)4 World (mudmap2.backend.World)4 Dimension (java.awt.Dimension)3 ArrayList (java.util.ArrayList)3 HashSet (java.util.HashSet)3