//
// ToolManager.java
// Thump
//
// Created by Anthony Parker on Tue Jan 14 2003.
// Copyright (c) 2003 Anthony Parker. All rights reserved.
//
package btthud.ui;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.lang.*;
import java.util.*;
import btthud.data.*;
public class ToolManager {
ToolPalette mainTools;
TerrainToolOptions terrTools;
ElevationToolOptions elevTools;
BrushToolOptions brushTools;
InspectorPalette inspector;
MPrefs prefs;
boolean changeElevation = true;
boolean changeTerrain = true;
public static final int TERRAIN_AND_ELEVATION = -1;
public static final int TERRAIN_ONLY = -2;
public static final int ELEVATION_ONLY = -3;
public static final int TOOL_PALETTE = 1;
public static final int TERRAIN_PALETTE = 2;
public static final int ELEVATION_PALETTE = 3;
public static final int BRUSH_PALETTE = 4;
public static final int INSPECTOR_PALETTE = 5;
public ToolManager(JDesktopPane desktop, MPrefs prefs)
{
// showTools, showTerrain, showElevation, showBrush, showInspector;
this.prefs = prefs;
mainTools = new ToolPalette(prefs);
mainTools.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
mainTools.setVisible(prefs.showTools);
desktop.add(mainTools);
terrTools = new TerrainToolOptions(prefs);
terrTools.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
terrTools.setVisible(prefs.showTerrain);
desktop.add(terrTools);
elevTools = new ElevationToolOptions(prefs);
elevTools.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
elevTools.setVisible(prefs.showElevation);
desktop.add(elevTools);
brushTools = new BrushToolOptions(prefs);
brushTools.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
brushTools.setVisible(prefs.showBrush);
desktop.add(brushTools);
inspector = new InspectorPalette(prefs);
inspector.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
inspector.setVisible(prefs.showInspector);
desktop.add(inspector);
}
// -----------------------
public int selectedTool()
{
return mainTools.selectedTool();
}
public void doSelectTool(int tool)
{
mainTools.newToolSelected(tool);
}
public int selectedTerrain()
{
return terrTools.selectedTerrain();
}
public void doSelectTerrain(char terr)
{
terrTools.selectToolForTerrain(terr);
}
public int selectedElevation()
{
return elevTools.selectedElevation();
}
public void doSelectElevation(int e)
{
elevTools.setElevation(e);
}
public int selectedBrushSize()
{
return brushTools.selectedBrush();
}
public void doSelectBrushSize(int size)
{
brushTools.selectBrushSize(size);
}
// ----------------------
public boolean getChangeElevation()
{
return changeElevation;
}
public boolean getChangeTerrain()
{
return changeTerrain;
}
public void setChangeElevation(boolean b)
{
changeElevation = b;
}
public void setChangeTerrain(boolean b)
{
changeTerrain = b;
}
// ----------------------
public void updatePaletteLocs()
{
prefs.toolsLoc = mainTools.getLocation();
prefs.terrainToolsLoc = terrTools.getLocation();
prefs.elevationToolsLoc = elevTools.getLocation();
prefs.brushToolsLoc = brushTools.getLocation();
prefs.inspectorLoc = inspector.getLocation();
}
public void setPaletteVisible(int palette, boolean vis)
{
switch (palette)
{
case TOOL_PALETTE:
mainTools.setVisible(vis);
break;
case TERRAIN_PALETTE:
terrTools.setVisible(vis);
break;
case ELEVATION_PALETTE:
elevTools.setVisible(vis);
break;
case BRUSH_PALETTE:
brushTools.setVisible(vis);
break;
}
}
// ----------------------
/*
public void keyTyped(KeyEvent e)
{
// Pass on the love
mainTools.keyTyped(e);
terrTools.keyTyped(e);
elevTools.keyTyped(e);
brushTools.keyTyped(e);
}
public void registerKeyActions(InputMap i, ActionMap a)
{
elevTools.registerKeyActions(i, a);
}
*/
// ---------------------
public void updateInspector(Point p, MUXHex h)
{
inspector.updateLocation(p, h);
}
// ---------------------
public String toString()
{
return ("Main: " + mainTools.getLocation() +
"\nTerr: " + terrTools.getLocation() +
"\nElev: " + elevTools.getLocation() +
"\nBrush: " + brushTools.getLocation() +
"\nInsp: " + inspector.getLocation());
}
}