@Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(.5f); return true; } }.installOn(splitCenterlabel);
splitter.setProportion(0.2f); splitter.setSecondComponent(loadingDecorator.getComponent());
@Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(getMinProportion(true)); return true; } }.installOn(splitUpLabel);
@Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { setProportion(1.0f - getMinProportion(false)); return true; } }.installOn(splitDownlabel);
@Override public void setProportion(float proportion) { super.setProportion(proportion); saveProportion(); }
private void updateProportion(Split split, float direction) { float stretch = direction * (split.orientation == vertical ? widthStretch : heightStretch); Splitter splitter = ((IdeSplitter) split).splitter; splitter.setProportion(splitter.getProportion() + stretch); }
public boolean toggleMaximizeRestoreSplitter(Split split, boolean inFirst) { Splitter splitter = ((IdeSplitter) split).splitter; // zoom out if the proportion equals the one during maximization if (this.maximizeState != null && this.maximizeState.newProportion == splitter.getProportion()) { splitter.setProportion(this.maximizeState.oldProportion); this.maximizeState = null; return false; } // maximize this.maximizeState = new MaximizeState(); this.maximizeState.oldProportion = splitter.getProportion(); splitter.setProportion(inFirst ? 1.0F : 0.0F); this.maximizeState.newProportion = splitter.getProportion(); return true; }
@Override protected void processMouseMotionEvent(MouseEvent e) { super.processMouseMotionEvent(e); if (!myResizeEnabled) return; if (MouseEvent.MOUSE_DRAGGED == e.getID()) { myPoint = SwingUtilities.convertPoint(this, e.getPoint(), Splitter.this); float proportion; if (isVertical()) { if (getHeight() > 0) { proportion = Math.min(1.0f, Math.max(.0f, Math .min(Math.max(getMinProportion(true), (float)myPoint.y / (float)Splitter.this.getHeight()), 1 - getMinProportion(false)))); setProportion(proportion); } } else { if (getWidth() > 0) { proportion = Math.min(1.0f, Math.max(.0f, Math .min(Math.max(getMinProportion(true), (float)myPoint.x / (float)Splitter.this.getWidth()), 1 - getMinProportion(false)))); setProportion(proportion); } } } }
@Override protected void processMouseEvent(MouseEvent e) { super.processMouseEvent(e); if (e.getID() == MouseEvent.MOUSE_CLICKED) { if (mySwitchOrientationEnabled && e.getClickCount() == 1 && SwingUtilities.isLeftMouseButton(e) && (SystemInfo.isMac ? e.isMetaDown() : e.isControlDown())) { Splitter.this.setOrientation(!Splitter.this.getOrientation()); } if (myResizeEnabled && e.getClickCount() == 2) { Splitter.this.setProportion(.5f); } } }
public Splitter(boolean vertical, float proportion, float minProp, float maxProp) { myMinProp = minProp; myMaxProp = maxProp; LOG.assertTrue(minProp >= 0.0f); LOG.assertTrue(maxProp <= 1.0f); LOG.assertTrue(minProp <= maxProp); myVerticalSplit = vertical; myShowDividerControls = false; myShowDividerIcon = true; myHonorMinimumSize = true; myDivider = createDivider(); setProportion(proportion); myDividerWidth = 7; super.add(myDivider); setOpaque(false); }
protected JComponent createSplitter(JComponent c1, JComponent c2, String proportionProperty, boolean vertical, float defaultSplit) { float savedProportion = PropertiesComponent.getInstance(project).getFloat(proportionProperty, defaultSplit); final Splitter splitter = new Splitter(vertical); splitter.setFirstComponent(c1); splitter.setSecondComponent(c2); splitter.setProportion(savedProportion); splitter.setHonorComponentsMinimumSize(true); splitter.addPropertyChangeListener(Splitter.PROP_PROPORTION, evt -> PropertiesComponent.getInstance(project).setValue(proportionProperty, Float.toString(splitter.getProportion()))); return splitter; }
@Override protected JComponent createCenterPanel() { final JComponent tree = super.createCenterPanel(); commitMessagePanel = new CommitMessage(project); commitMessagePanel.setCommitMessage("Initial commit"); Splitter splitter = new Splitter(true); splitter.setHonorComponentsMinimumSize(true); splitter.setFirstComponent(tree); splitter.setSecondComponent(commitMessagePanel); splitter.setProportion(SPLIT_PROPORTION); return splitter; }