Search in sources :

Example 1 with NumberTableCellRenderer

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>&nbsp;</td><th style=\"text-align:left\">Top:</th><td style=\"text-align:right\">" + DataTypes.toString(boundingBox.getMaximum(1)) + "</td><td>&nbsp;</td></tr><tr>" + "<td><b>Left</b>: " + DataTypes.toString(boundingBox.getMinimum(0)) + "</td><td>&nbsp;</td><td>&nbsp;</td>" + "<td><b>Right</b>: " + DataTypes.toString(boundingBox.getMaximum(0)) + "</td></tr>" + "<tr><td>&nbsp;</td><th>Bottom:</th><td style=\"text-align:right\">" + DataTypes.toString(boundingBox.getMinimum(1)) + "</td><td>&nbsp;</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;
}
Also used : JScrollPane(javax.swing.JScrollPane) JPanel(javax.swing.JPanel) GeometryFactory(com.revolsys.geometry.model.GeometryFactory) JXTable(org.jdesktop.swingx.JXTable) TextArea(java.awt.TextArea) CoordinateSystem(com.revolsys.geometry.cs.CoordinateSystem) DefaultTableModel(javax.swing.table.DefaultTableModel) JLabel(javax.swing.JLabel) ScrollableSizeHint(org.jdesktop.swingx.ScrollableSizeHint) Font(java.awt.Font) BorderLayout(java.awt.BorderLayout) BoundingBox(com.revolsys.geometry.model.BoundingBox) VerticalLayout(org.jdesktop.swingx.VerticalLayout) NumberTableCellRenderer(com.revolsys.swing.table.NumberTableCellRenderer)

Aggregations

CoordinateSystem (com.revolsys.geometry.cs.CoordinateSystem)1 BoundingBox (com.revolsys.geometry.model.BoundingBox)1 GeometryFactory (com.revolsys.geometry.model.GeometryFactory)1 NumberTableCellRenderer (com.revolsys.swing.table.NumberTableCellRenderer)1 BorderLayout (java.awt.BorderLayout)1 Font (java.awt.Font)1 TextArea (java.awt.TextArea)1 JLabel (javax.swing.JLabel)1 JPanel (javax.swing.JPanel)1 JScrollPane (javax.swing.JScrollPane)1 DefaultTableModel (javax.swing.table.DefaultTableModel)1 JXTable (org.jdesktop.swingx.JXTable)1 ScrollableSizeHint (org.jdesktop.swingx.ScrollableSizeHint)1 VerticalLayout (org.jdesktop.swingx.VerticalLayout)1