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);
}
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();
}
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);
}
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();
}
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();
}
Aggregations