use of com.revolsys.swing.table.NumberTableCellRenderer in project com.revolsys.open by revolsys.
the class AbstractLayer method newPropertiesTabCoordinateSystem.
protected JPanel newPropertiesTabCoordinateSystem(final TabbedValuePanel tabPanel) {
final GeometryFactory geometryFactory = getGeometryFactory();
if (geometryFactory != null) {
final JPanel panel = new JPanel(new VerticalLayout(5));
tabPanel.addTab("Spatial", "world", panel);
final JPanel extentPanel = Panels.titledTransparent("Extent");
extentPanel.setLayout(new BorderLayout());
final BoundingBox boundingBox = getBoundingBox();
if (boundingBox == null || boundingBox.isEmpty()) {
extentPanel.add(new JLabel("Unknown"), BorderLayout.CENTER);
} else {
final JLabel extentLabel = new JLabel("<html><table cellspacing=\"3\" style=\"margin:0px\">" + "<tr><td> </td><th style=\"text-align:left\">Top:</th><td style=\"text-align:right\">" + DataTypes.toString(boundingBox.getMaximum(1)) + "</td><td> </td></tr><tr>" + "<td><b>Left</b>: " + DataTypes.toString(boundingBox.getMinimum(0)) + "</td><td> </td><td> </td>" + "<td><b>Right</b>: " + DataTypes.toString(boundingBox.getMaximum(0)) + "</td></tr>" + "<tr><td> </td><th>Bottom:</th><td style=\"text-align:right\">" + DataTypes.toString(boundingBox.getMinimum(1)) + "</td><td> </td></tr><tr>" + "</tr></table></html>");
extentLabel.setFont(SwingUtil.FONT);
extentPanel.add(extentLabel, BorderLayout.CENTER);
final int boundingBoxAxisCount = boundingBox.getAxisCount();
final DefaultTableModel boundingBoxTableModel = new DefaultTableModel(new Object[] { "AXIS", "MIN", "MAX" }, 0);
boundingBoxTableModel.addRow(new Object[] { "X", boundingBox.getMinX(), boundingBox.getMaxY() });
boundingBoxTableModel.addRow(new Object[] { "Y", boundingBox.getMinY(), boundingBox.getMaxY() });
if (boundingBoxAxisCount > 2) {
boundingBoxTableModel.addRow(new Object[] { "Z", boundingBox.getMinZ(), boundingBox.getMaxZ() });
}
final JXTable boundingBoxTable = new JXTable(boundingBoxTableModel);
boundingBoxTable.setVisibleRowCount(3);
boundingBoxTable.setDefaultEditor(Object.class, null);
boundingBoxTable.setDefaultRenderer(Object.class, new NumberTableCellRenderer());
final JScrollPane boundingBoxScroll = new JScrollPane(boundingBoxTable);
extentPanel.add(boundingBoxScroll, BorderLayout.EAST);
boundingBoxTable.getColumnExt(0).setMaxWidth(31);
}
panel.add(extentPanel);
final JPanel coordinateSystemPanel = Panels.titledTransparent("Coordinate System");
final CoordinateSystem coordinateSystem = geometryFactory.getCoordinateSystem();
if (coordinateSystem == null) {
coordinateSystemPanel.add(new JLabel("Unknown"));
} else {
final int axisCount = geometryFactory.getAxisCount();
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "ID", coordinateSystem.getCoordinateSystemId(), 10);
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "axisCount", axisCount, 10);
final double scaleX = geometryFactory.getScaleX();
if (scaleX > 0) {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleX", scaleX, 10);
} else {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleX", "Floating", 10);
}
final double scaleY = geometryFactory.getScaleXY();
if (scaleY > 0) {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleY", scaleY, 10);
} else {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleY", "Floating", 10);
}
if (axisCount > 2) {
final double scaleZ = geometryFactory.getScaleZ();
if (scaleZ > 0) {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleZ", scaleZ, 10);
} else {
SwingUtil.addLabelledReadOnlyTextField(coordinateSystemPanel, "scaleZ", "Floating", 10);
}
}
SwingUtil.addLabel(coordinateSystemPanel, "ESRI WKT");
final String wktFormatted = geometryFactory.toWktCsFormatted();
final TextArea wktTextArea = new TextArea(wktFormatted, 10, 80);
wktTextArea.setEditable(false);
wktTextArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 11));
coordinateSystemPanel.add(wktTextArea);
GroupLayouts.makeColumns(coordinateSystemPanel, 2, true);
}
panel.add(coordinateSystemPanel);
return panel;
}
return null;
}
Aggregations