Changeset 751


Ignore:
Timestamp:
03/15/09 13:35:43 (3 years ago)
Author:
kasper
Message:

Ticket #272: Issue with table sizing fixed. Added use of JTable's own scrolling mechanism which also introduced a few table management perks.

Location:
DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/dialogs/CsvConfigurationDialog.java

    r645 r751  
    1818 
    1919import java.awt.BorderLayout; 
    20 import java.awt.Color; 
    2120import java.awt.Component; 
     21import java.awt.GridBagLayout; 
    2222import java.awt.event.ActionEvent; 
    2323import java.awt.event.ActionListener; 
     
    3232import javax.swing.JTextField; 
    3333import javax.swing.JToolBar; 
    34 import javax.swing.border.LineBorder; 
    3534 
    3635import dk.eobjects.datacleaner.data.DataContextSelection; 
     
    4140import dk.eobjects.metamodel.data.Row; 
    4241import dk.eobjects.metamodel.query.Query; 
     42import dk.eobjects.metamodel.query.SelectItem; 
     43import dk.eobjects.metamodel.schema.Column; 
    4344import dk.eobjects.metamodel.schema.Table; 
    4445 
     
    4748 
    4849        private static final long serialVersionUID = -8449807287294665745L; 
     50 
    4951        private static final String COMMA_ACTION_CMD = ","; 
    5052        private static final String SEMI_COLON_ACTION_CMD = ";"; 
     
    5254        private static final String SINGLE_QUOTE_ACTION_CMD = "'"; 
    5355        private static final String DOUBLE_QUOTE_ACTION_CMD = "\""; 
    54         private JPanel _dataConfigurationPanel; 
     56        private static final int PREVIEW_ROWS = 5; 
     57 
     58        private JPanel _panel; 
    5559        private JTextField _sampleText; 
    5660        private DataTable _table; 
     
    5963        private DataContextSelection _dataContextSelection; 
    6064        private File _file; 
    61         private JRadioButton _tabButton; 
     65        private String _fileExtension; 
    6266        private JPanel _tablePanel; 
    6367 
    6468        public CsvConfigurationDialog(DataContextSelection selection, File file) { 
    65                 super(600, 480); 
     69                super(500, 480); 
    6670                _file = file; 
    6771                _dataContextSelection = selection; 
     
    7882                add(toolbar, BorderLayout.SOUTH); 
    7983 
    80                 String fileExtension = DataContextSelection.getExtention(file); 
    81                 if (DataContextSelection.EXTENSION_TAB_SEPARATED.equals(fileExtension)) { 
    82                         _tabButton.setSelected(true); 
    83                         _curSeparator = TAB_ACTION_CMD.charAt(0); 
    84                 } 
     84                _fileExtension = DataContextSelection.getExtention(file); 
    8585 
    8686                updateContent(); 
     
    9090        protected Component getContent() { 
    9191                ButtonGroup delimitorGroup = new ButtonGroup(); 
    92                 _dataConfigurationPanel = GuiHelper.createPanel().applyLayout(null) 
    93                                 .toComponent(); 
    94                 JLabel delimitorLbl = new JLabel("Select the Delimitor:"); 
    95                 addToPanel(delimitorLbl, 10, 5, 200, 20); 
     92                _panel = GuiHelper.createPanel().toComponent(); 
     93 
     94                JLabel delimitorLabel = new JLabel("Select the Delimitor:"); 
     95                GuiHelper.addToGridBag(delimitorLabel, _panel, 0, 0); 
     96 
    9697                JRadioButton commaButton = GuiHelper.createRadio("Use Comma [,]", 
    9798                                delimitorGroup).toComponent(); 
     
    99100                commaButton.setSelected(true); 
    100101                commaButton.addActionListener(this); 
    101                 addToPanel(commaButton, 10, 35, 150, 20); 
     102                GuiHelper.addToGridBag(commaButton, _panel, 0, 1); 
    102103 
    103104                JRadioButton semiColonButton = GuiHelper.createRadio( 
     
    105106                semiColonButton.setActionCommand(SEMI_COLON_ACTION_CMD); 
    106107                semiColonButton.addActionListener(this); 
    107                 addToPanel(semiColonButton, 10, 60, 150, 20); 
    108  
    109                 _tabButton = GuiHelper.createRadio("Use Tab [   ]", delimitorGroup) 
    110                                 .toComponent(); 
    111                 _tabButton.setActionCommand(TAB_ACTION_CMD); 
    112                 _tabButton.addActionListener(this); 
    113                 addToPanel(_tabButton, 10, 85, 150, 20); 
    114  
    115                 delimitorGroup.add(_tabButton); 
    116  
    117                 JLabel quotationLbl = new JLabel("Select the Quotation type:"); 
     108                GuiHelper.addToGridBag(semiColonButton, _panel, 0, 2); 
     109 
     110                JRadioButton tabButton = GuiHelper.createRadio("Use Tab [   ]", 
     111                                delimitorGroup).toComponent(); 
     112                tabButton.setActionCommand(TAB_ACTION_CMD); 
     113                tabButton.addActionListener(this); 
     114                if (DataContextSelection.EXTENSION_TAB_SEPARATED.equals(_fileExtension)) { 
     115                        tabButton.setSelected(true); 
     116                        _curSeparator = TAB_ACTION_CMD.charAt(0); 
     117                } 
     118                GuiHelper.addToGridBag(tabButton, _panel, 0, 3); 
     119 
     120                delimitorGroup.add(tabButton); 
     121 
     122                JLabel quotationLabel = new JLabel("Select the Quotation type:"); 
     123                GuiHelper.addToGridBag(quotationLabel, _panel, 1, 0); 
    118124 
    119125                ButtonGroup quoteGroup = new ButtonGroup(); 
    120                 addToPanel(quotationLbl, 200, 5, 200, 20); 
    121                 JRadioButton doubleButton = GuiHelper.createRadio( 
     126                JRadioButton doubleQuoteButton = GuiHelper.createRadio( 
    122127                                "Use Double Quote [\"sample text\"]", quoteGroup).toComponent(); 
    123                 doubleButton.setActionCommand(DOUBLE_QUOTE_ACTION_CMD); 
    124                 doubleButton.setSelected(true); 
    125                 doubleButton.addActionListener(this); 
    126                 addToPanel(doubleButton, 200, 35, 200, 20); 
    127                 JRadioButton singleButton = GuiHelper.createRadio( 
     128                doubleQuoteButton.setActionCommand(DOUBLE_QUOTE_ACTION_CMD); 
     129                doubleQuoteButton.setSelected(true); 
     130                doubleQuoteButton.addActionListener(this); 
     131                GuiHelper.addToGridBag(doubleQuoteButton, _panel, 1, 1); 
     132 
     133                JRadioButton singleQuoteButton = GuiHelper.createRadio( 
    128134                                "Use Single Quote ['sample text']", quoteGroup).toComponent(); 
    129                 singleButton.setActionCommand(SINGLE_QUOTE_ACTION_CMD); 
    130                 singleButton.addActionListener(this); 
    131                 addToPanel(singleButton, 200, 60, 200, 20); 
     135                singleQuoteButton.setActionCommand(SINGLE_QUOTE_ACTION_CMD); 
     136                singleQuoteButton.addActionListener(this); 
     137                GuiHelper.addToGridBag(singleQuoteButton, _panel, 1, 2); 
    132138 
    133139                _sampleText = new JTextField("Sample Text"); 
    134140                _sampleText.setText("\"sample text1\", \"sample text2\", ..."); 
    135141                _sampleText.setEnabled(false); 
    136                 addToPanel(_sampleText, 10, 115, 400, 20); 
     142                GuiHelper.addToGridBag(_sampleText, _panel, 0, 10, 2, 1); 
    137143 
    138144                JLabel tableHeading = new JLabel("Preview Data:"); 
    139                 addToPanel(tableHeading, 10, 145, 200, 20); 
    140  
    141                 _table = new DataTable(new DataSet(new ArrayList<Row>(0))); 
     145                GuiHelper.addToGridBag(tableHeading, _panel, 0, 11, 2, 1); 
     146 
     147                ArrayList<Row> initialData = new ArrayList<Row>(PREVIEW_ROWS); 
     148                SelectItem[] selectItems = new SelectItem[] { new SelectItem( 
     149                                new Column("")) }; 
     150                for (int i = 0; i < PREVIEW_ROWS; i++) { 
     151                        initialData.add(new Row(selectItems, new Object[] { "" })); 
     152                } 
     153 
     154                _table = new DataTable(new DataSet(initialData)); 
    142155                _table.setName("previewTable"); 
    143156                _tablePanel = _table.toPanel(); 
    144                 _tablePanel.setBorder(new LineBorder(Color.GRAY, 1)); 
    145                 _tablePanel.setLocation(10, 170); 
    146                 _dataConfigurationPanel.add(_tablePanel); 
    147                 // addToPanel(tablePanel, 10, 150, 580, 108); 
    148                 return _dataConfigurationPanel; 
    149         } 
    150  
    151         private void addToPanel(Component c, int xPos, int yPos, int width, 
    152                         int height) { 
    153                 c.setLocation(xPos, yPos); 
    154                 c.setSize(width, height); 
    155                 _dataConfigurationPanel.add(c); 
     157                GuiHelper.addToGridBag(_tablePanel, _panel, 0, 12, 2, 1); 
     158 
     159                GridBagLayout layout = (GridBagLayout) _panel.getLayout(); 
     160                layout.columnWidths = new int[] { 240, 240 }; 
     161 
     162                return _panel; 
    156163        } 
    157164 
     
    180187                Query q = new Query(); 
    181188                q.from(table).select(table.getColumns()); 
    182                 q.setMaxRows(5); 
     189                q.setMaxRows(PREVIEW_ROWS); 
    183190 
    184191                _table.updateTable(dataContext.executeQuery(q)); 
    185                 _tablePanel.setSize(_table.getPanelPreferredSize()); 
    186192        } 
    187193 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/panels/TableProfileResultsPanel.java

    r739 r751  
    164164                                                MatrixTable matrixTable = new MatrixTable(matrix, 
    165165                                                                dataContext); 
    166                                                 taskPane.add(new JScrollPane(matrixTable.toPanel(), 
    167                                                                 JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
    168                                                                 JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)); 
     166                                                taskPane.add(matrixTable.toPanel()); 
    169167                                                taskPaneContainer.add(taskPane); 
    170168                                        } 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/panels/TableValidationRuleResultsPanel.java

    r739 r751  
    170170                                                        evaluatedColumnIndexes)); 
    171171 
    172                                         taskPane.add(new JScrollPane(dataTable.toPanel(), 
    173                                                         JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
    174                                                         JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)); 
     172                                        taskPane.add(dataTable.toPanel()); 
    175173                                } 
    176174                        } 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/website/RegexSwapDialog.java

    r744 r751  
    7373 
    7474                JSplitPane rightPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, 
    75                                 new JScrollPane(regexSelectionTablePanel), regexDetailsPanel); 
     75                                regexSelectionTablePanel, regexDetailsPanel); 
    7676                rightPane.setDividerLocation(170); 
    7777                JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/widgets/DataCleanerTable.java

    r723 r751  
    3333import javax.swing.JPanel; 
    3434import javax.swing.JPopupMenu; 
     35import javax.swing.JScrollPane; 
    3536import javax.swing.JTable; 
    3637import javax.swing.table.DefaultTableModel; 
     
    4142import org.jdesktop.swingx.JXTable; 
    4243 
    43 import dk.eobjects.datacleaner.gui.GuiBuilder; 
    4444import dk.eobjects.datacleaner.gui.GuiHelper; 
    4545import dk.eobjects.datacleaner.profiler.MatrixValue; 
     
    110110        public JPanel toPanel() { 
    111111                if (_panel == null) { 
    112                         GuiBuilder<JPanel> guiBuilder = GuiHelper.createPanel() 
    113                                         .applyBorderLayout(); 
    114                         Dimension panelPreferredSize = getPanelPreferredSize(); 
    115                         guiBuilder.applySize(panelPreferredSize); 
    116                         _panel = guiBuilder.toComponent(); 
     112                        _panel = GuiHelper.createPanel() 
     113                                        .applyBorderLayout().toComponent(); 
    117114                        _panel.add(getTableHeader(), BorderLayout.NORTH); 
    118                         _panel.add(this, BorderLayout.CENTER); 
     115                        _panel.add(new JScrollPane(this), BorderLayout.CENTER); 
     116                        _panel.setPreferredSize(getPanelPreferredSize()); 
    119117                } 
    120118                return _panel; 
     
    127125                Dimension headerSize = getTableHeader().getPreferredSize(); 
    128126                d.height = headerSize.height + tableSize.height; 
     127                 
     128                // Adding a 20 pixel buffer for horisontal scroll bars 
     129                // (Ticket #272) 
     130                d.height = d.height + 20; 
    129131                return d; 
    130132        } 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/windows/DataSetWindow.java

    r604 r751  
    2121 
    2222import javax.swing.ImageIcon; 
    23 import javax.swing.JScrollPane; 
    2423 
    2524import dk.eobjects.datacleaner.gui.GuiHelper; 
     
    4544 
    4645                _panel.setLayout(new BorderLayout()); 
    47                 JScrollPane scrollPane = new JScrollPane(_dataTable.toPanel()); 
    48                 _panel.add(scrollPane, BorderLayout.CENTER); 
     46                _panel.add(_dataTable.toPanel(), BorderLayout.CENTER); 
    4947 
    5048                Dimension tableSize = _dataTable.getPreferredSize(); 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/windows/PreviewDataWindow.java

    r604 r751  
    2121 
    2222import javax.swing.ImageIcon; 
    23 import javax.swing.JScrollPane; 
    2423 
    2524import dk.eobjects.datacleaner.gui.GuiHelper; 
     
    5352                _panel.setLayout(new BorderLayout()); 
    5453                DataTable dataTable = new DataTable(data); 
    55                 JScrollPane scrollPane = new JScrollPane(dataTable.toPanel()); 
    56                 _panel.add(scrollPane, BorderLayout.CENTER); 
     54                _panel.add(dataTable.toPanel(), BorderLayout.CENTER); 
    5755 
    5856                Dimension tableSize = dataTable.getPreferredSize(); 
  • DataCleaner/trunk/DataCleaner-gui/src/main/java/dk/eobjects/datacleaner/gui/windows/ProfilerWindow.java

    r739 r751  
    194194                                columnSelectionPanel); 
    195195                _tabbedPane.addTab("Metadata", GuiHelper 
    196                                 .getImageIcon("images/tab_metadata.png"), new JScrollPane( 
    197                                 metadataPanel)); 
     196                                .getImageIcon("images/tab_metadata.png"), metadataPanel); 
    198197                _tabbedPane.setUnclosableTab(0); 
    199198                _tabbedPane.setUnclosableTab(1); 
Note: See TracChangeset for help on using the changeset viewer.