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;
53 import net.
sf.japi.swing.action.ActionBuilder;
54 import net.
sf.japi.swing.action.ActionBuilderFactory;
55 import org.jetbrains.annotations.NotNull;
56 import org.jetbrains.annotations.Nullable;
79 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
143 public void mapCursorChangedPos(@NotNull
final Point location) {
148 public void mapCursorChangedMode() {
153 public void mapCursorChangedGameObject(@Nullable
final MapSquare<G, A, R> mapSquare, @Nullable
final G gameObject) {
158 public void mapCursorChangedSize() {
176 public void mapCreated(@NotNull
final MapControl<G, A, R> mapControl,
final boolean interactive) {
220 final String mapType = mapControl.isPickmap() ?
"map" :
"pickmap";
221 setStatusText(
"Saved " + mapType +
" '" + mapControl.getMapModel().getMapArchObject().getMapName() +
"'.");
232 public void mouseDragged(@NotNull
final MouseEvent e) {
237 public void mouseMoved(@NotNull
final MouseEvent e) {
251 public void actionPerformed(@NotNull
final ActionEvent e) {
256 final Runtime runtime = Runtime.getRuntime();
257 final long freeMem = runtime.freeMemory();
258 final long totMem = runtime.totalMemory();
259 final long usedMem = totMem - freeMem;
277 setLayout(
new GridBagLayout());
278 setBorder(
new BevelBorder(BevelBorder.LOWERED));
280 final GridBagConstraints gbc =
new GridBagConstraints();
281 gbc.fill = GridBagConstraints.HORIZONTAL;
282 gbc.anchor = GridBagConstraints.WEST;
286 mouse =
new JLabel(
" ");
287 mouse.setBorder(
new BevelBorder(BevelBorder.LOWERED));
291 cursor.setBorder(
new BevelBorder(BevelBorder.LOWERED));
296 status.setBorder(
new BevelBorder(BevelBorder.LOWERED));
301 memory.setBorder(
new BevelBorder(BevelBorder.LOWERED));
323 private static final NumberFormat
FORMAT = NumberFormat.getInstance();
326 FORMAT.setMinimumFractionDigits(1);
327 FORMAT.setMaximumFractionDigits(1);
334 private static final String @NotNull []
UNITS = {
"Bytes",
"KB",
"MB",
"GB" };
344 for (
int i =
UNITS.length - 1; i >= 0; i--) {
345 final long m = 1L << i * 10;
360 final String formatCursor;
361 if (mapCursor ==
null) {
364 final Point pos = mapCursor.getLocation();
365 final int cursorX = pos.x;
366 final int cursorY = pos.y;
367 if (mapCursor.isDragging()) {
368 final Dimension offset = mapCursor.getDragOffset();
369 assert offset !=
null;
370 final int offsetX = Math.abs(offset.width) + 1;
371 final int offsetY = Math.abs(offset.height) + 1;
372 formatCursor =
ACTION_BUILDER.format(
"statusCursorDragging", cursorX, cursorY, offsetX, offsetY);
374 formatCursor =
ACTION_BUILDER.format(
"statusCursorActive", cursorX, cursorY);
377 cursor.setText(formatCursor);
396 if (this.mapView !=
null) {
403 if (this.mapView !=
null) {