20 package net.sf.gridarta.gui.misc;
22 import java.awt.Dimension;
23 import java.awt.GridBagConstraints;
24 import java.awt.GridBagLayout;
25 import java.awt.Point;
26 import java.awt.event.ActionEvent;
27 import java.awt.event.ActionListener;
28 import java.awt.event.MouseEvent;
29 import java.awt.event.MouseMotionListener;
30 import java.text.NumberFormat;
31 import javax.swing.JLabel;
32 import javax.swing.JPanel;
33 import javax.swing.Timer;
34 import javax.swing.border.BevelBorder;
54 import net.
sf.japi.swing.action.ActionBuilder;
55 import net.
sf.japi.swing.action.ActionBuilderFactory;
56 import org.jetbrains.annotations.NotNull;
57 import org.jetbrains.annotations.Nullable;
80 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
144 public void mapCursorChangedPos(@NotNull
final Point location) {
149 public void mapCursorChangedMode() {
154 public void mapCursorChangedGameObject(@Nullable
final MapSquare<G, A, R> mapSquare, @Nullable
final G gameObject) {
159 public void mapCursorChangedSize() {
177 public void mapCreated(@NotNull
final MapControl<G, A, R> mapControl,
final boolean interactive) {
224 final String mapType = mapControl.isPickmap() ?
"map" :
"pickmap";
225 setStatusText(
"Saved " + mapType +
" '" + mapControl.getMapModel().getMapArchObject().getMapName() +
"'.");
238 public void mouseDragged(@NotNull
final MouseEvent e) {
243 public void mouseMoved(@NotNull
final MouseEvent e) {
257 public void actionPerformed(@NotNull
final ActionEvent e) {
262 final Runtime runtime = Runtime.getRuntime();
263 final long freeMem = runtime.freeMemory();
264 final long totMem = runtime.totalMemory();
265 final long usedMem = totMem - freeMem;
283 setLayout(
new GridBagLayout());
284 setBorder(
new BevelBorder(BevelBorder.LOWERED));
286 final GridBagConstraints gbc =
new GridBagConstraints();
287 gbc.fill = GridBagConstraints.HORIZONTAL;
288 gbc.anchor = GridBagConstraints.WEST;
292 mouse =
new JLabel(
" ");
293 mouse.setBorder(
new BevelBorder(BevelBorder.LOWERED));
297 cursor.setBorder(
new BevelBorder(BevelBorder.LOWERED));
302 status.setBorder(
new BevelBorder(BevelBorder.LOWERED));
307 memory.setBorder(
new BevelBorder(BevelBorder.LOWERED));
329 private static final NumberFormat
FORMAT = NumberFormat.getInstance();
332 FORMAT.setMinimumFractionDigits(1);
333 FORMAT.setMaximumFractionDigits(1);
340 private static final String @NotNull []
UNITS = {
"Bytes",
"KB",
"MB",
"GB" };
350 for (
int i =
UNITS.length - 1; i >= 0; i--) {
351 final long m = 1L << i * 10;
366 final String formatCursor;
367 if (mapCursor ==
null) {
370 final Point pos = mapCursor.getLocation();
371 final int cursorX = pos.x;
372 final int cursorY = pos.y;
373 if (mapCursor.isDragging()) {
374 final Dimension offset = mapCursor.getDragOffset();
375 assert offset !=
null;
376 final int offsetX = Math.abs(offset.width) + 1;
377 final int offsetY = Math.abs(offset.height) + 1;
378 formatCursor =
ACTION_BUILDER.format(
"statusCursorDragging", cursorX, cursorY, offsetX, offsetY);
380 formatCursor =
ACTION_BUILDER.format(
"statusCursorActive", cursorX, cursorY);
383 cursor.setText(formatCursor);
402 if (this.mapView !=
null) {
409 if (this.mapView !=
null) {