private JComponent createMainPanel() { JPanel categoryChartDonutAndProcessChart = new JPanel(new GridBagLayout()); categoryChartDonutAndProcessChart.setBackground(ColorConst.CONTENT_BACKGROUND); categoryChartDonutAndProcessChart.setMinimumSize(new Dimension(0, 0)); categoryChartDonutAndProcessChart.add(categoryChartPanelService.createCategoryChartPanel(), new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); categoryChartDonutAndProcessChart.add(categoryDonutPanelService.createCategoryDonutPanel(), new GridBagConstraints(1, 0, 1, 2, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); categoryChartDonutAndProcessChart.add(processChartPanelService.createProcessChartPanel(), new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); JPanel processTreePanel = processTreePanelService.createProcessTreePanel(); processTreePanel.setMinimumSize(new Dimension(0, 0)); JSplitPane mainSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, categoryChartDonutAndProcessChart, processTreePanel); PgsSplitPaneUI pgsSplitPaneUI = new PgsSplitPaneUI(); mainSplitPane.setUI(pgsSplitPaneUI); pgsSplitPaneUI.getDivider().setBorder(BorderFactory.createEmptyBorder()); pgsSplitPaneUI.getDivider().setBackground(ColorConst.CONTENT_BACKGROUND); mainSplitPane.setContinuousLayout(true); mainSplitPane.setBorder(BorderFactory.createEmptyBorder()); mainSplitPane.setOneTouchExpandable(false); mainSplitPane.setResizeWeight(0.5D); mainSplitPane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, new SnagToEdgesJSplitPanePropertyChangeListener(mainSplitPane)); return mainSplitPane; } }