package demoGUI;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.UIManager;
import com.iver.andami.messages.Messages;
import com.iver.cit.gvsig.fmap.MapControl;
import com.iver.cit.gvsig.gui.IView;
import com.iver.cit.gvsig.gui.MapOverview;
import com.iver.cit.gvsig.gui.dialogs.FInfoDialog;
import com.iver.cit.gvsig.gui.toc.TOC;
import java.awt.Dimension;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.image.ImageObserver;
import java.util.Locale;
public class LittlegvSIG
extends JFrame implements IView,
WindowListener {
public static ImageObserver m_ImageObserver =
null;
private static final long serialVersionUID = 1L;
private JPanel panelvista =
null;
// @jve:decl-index=0:visual-constraint="160,10"
public MapControl mapControl;
public FInfoDialog dlgInfo;
private TOC toc;
private MapOverview mapOverview;
JSplitPane mainSplit;
JSplitPane splitToc;
/**
* This is the default constructor
*/
public LittlegvSIG
() {
super();
m_ImageObserver =
this;
initialize
();
addWindowListener
((WindowListener) this);
dlgInfo =
new FInfoDialog
();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize
() {
this.
setSize(576,
389);
addWindowListener
(new java.
awt.
event.
WindowAdapter() {
public void windowClosing
(java.
awt.
event.
WindowEvent evt
) {
exitForm
(evt
);
}
});
//Create GIS component
mapControl =
new MapControl
();
mapControl.
getMapContext().
getViewPort()
.
setBackColor(new Color(220,
220,
255));
//Cette partie est indispensable pour ne pas avoir une erreur sur
//le curseur de la souris.
//Il faut ajouter la fonction zoom.
StatusBarListener sbl =
new StatusBarListener
(mapControl
);
ZoomInListener zil =
new ZoomInListener
(mapControl
);
ZoomOutRightButtonListener zoil =
new ZoomOutRightButtonListener
(mapControl
);
mapControl.
addMapTool("zoomIn",
new Behavior
[]{new RectangleBehavior
(zil
),
new PointBehavior
(zoil
),
new MouseMovementBehavior
(sbl
)});
mapControl.
setTool("zoomIn");
//Table Of Contents
toc =
new TOC
();
toc.
setMapContext(mapControl.
getMapContext());
toc.
setVisible(true);
mapOverview =
new MapOverview
(mapControl
);
mapOverview.
setPreferredSize(new Dimension(150,
200));
this.
setContentPane(getJContentPane
());
this.
setTitle("My little gvSIG");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane
() {
if (panelvista ==
null) {
panelvista =
new JPanel();
panelvista.
setLayout(new BorderLayout());
panelvista.
setSize(new Dimension(446,
265));
panelvista.
add(getMainSplit
(),
BorderLayout.
CENTER);
}
return panelvista;
}
private JSplitPane getMainSplit
() {
if (mainSplit ==
null) {
mainSplit =
new JSplitPane(JSplitPane.
HORIZONTAL_SPLIT);
mainSplit.
setLeftComponent(getSplitToc
());
mainSplit.
setRightComponent(mapControl
);
}
return mainSplit;
}
private JSplitPane getSplitToc
() {
if (splitToc ==
null) {
splitToc =
new JSplitPane(JSplitPane.
VERTICAL_SPLIT);
splitToc.
setTopComponent(toc
);
splitToc.
setBottomComponent(mapOverview
);
splitToc.
setResizeWeight(0.7);
}
return splitToc;
}
public MapControl getMapControl
() {
return mapControl;
}
public TOC getTOC
() {
// TODO Auto-generated method stub
return toc;
}
public void windowActivated
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowClosed
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowClosing
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowDeactivated
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowDeiconified
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowIconified
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public void windowOpened
(WindowEvent arg0
) {
// TODO Auto-generated method stub
}
public MapControl getMapOverview
()
{
return mapOverview;
}
/** Exit the Application */
private void exitForm
(java.
awt.
event.
WindowEvent evt
) {
System.
exit(0);
}
public void repaintMap
() {
mapControl.
drawMap(false);
repaint
();
}
public static void main
(String[] args
) {
try {
UIManager.
setLookAndFeel(UIManager.
getSystemLookAndFeelClassName());
} catch (Exception e
) {
System.
out.
println(UIManager.
getCrossPlatformLookAndFeelClassName());
}
//PropertyConfigurator.configure(SingleView.class.getClassLoader()
// .getResource("log4j.properties"));
Locale loc =
null;
if (args.
length ==
0) {
loc =
Locale.
getDefault();
} else {
loc =
new Locale(args
[0]);
}
Messages.
init(loc
);
LittlegvSIG testApp =
new LittlegvSIG
();
// testApp.getContentPane().add(elMapa);
testApp.
show();
}
}