fix for mac toolbar

This commit is contained in:
bancika
2021-01-04 09:56:09 +01:00
parent 536188dc92
commit 5415c29ee0
6 changed files with 52 additions and 25 deletions
@@ -3461,5 +3461,21 @@
</changes> </changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url> <url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version> </org.diylc.appframework.update.Version>
<org.diylc.appframework.update.Version>
<versionNumber>
<major>4</major>
<minor>15</minor>
<build>1</build>
</versionNumber>
<releaseDate>2021-01-04 00:00:00.000 CET</releaseDate>
<name></name>
<changes>
<org.diylc.appframework.update.Change>
<changeType>BUG_FIX</changeType>
<description>macOS: issues with scrollable toolbar that prevent it from starting on mac machines</description>
</org.diylc.appframework.update.Change>
</changes>
<url>https://github.com/bancika/diy-layout-creator/releases</url>
</org.diylc.appframework.update.Version>
</a> </a>
</java.util.Arrays_-ArrayList> </java.util.Arrays_-ArrayList>
Binary file not shown.
+1 -1
View File
@@ -10,7 +10,7 @@
<property name="jar.dir" value="${build.dir}/jar" /> <property name="jar.dir" value="${build.dir}/jar" />
<property name="report.dir" value="${build.dir}/junitreport" /> <property name="report.dir" value="${build.dir}/junitreport" />
<property name="main.class" value="org.diylc.DIYLCStarter" /> <property name="main.class" value="org.diylc.DIYLCStarter" />
<property name="diylc.version" value="4.15.0" /> <property name="diylc.version" value="4.15.1" />
<property name="osx.jre8.path" value="jre\osx\jdk8u275-b01-jre\Contents\Home\" /> <property name="osx.jre8.path" value="jre\osx\jdk8u275-b01-jre\Contents\Home\" />
Binary file not shown.
Binary file not shown.
@@ -29,9 +29,13 @@ import javax.swing.JScrollPane;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.plaf.basic.BasicArrowButton; import javax.swing.plaf.basic.BasicArrowButton;
import org.apache.log4j.Logger;
public class ToolbarScrollPane extends JPanel { public class ToolbarScrollPane extends JPanel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static final Logger LOG = Logger.getLogger(ToolbarScrollPane.class);
private Component view; private Component view;
private BasicArrowButton west; private BasicArrowButton west;
@@ -43,30 +47,37 @@ public class ToolbarScrollPane extends JPanel {
setLayout(new BorderLayout()); setLayout(new BorderLayout());
setBorder(BorderFactory.createEmptyBorder()); setBorder(BorderFactory.createEmptyBorder());
JScrollPane scrollPane = new JScrollPane(view); try {
scrollPane.setBorder(BorderFactory.createEmptyBorder()); JScrollPane scrollPane = new JScrollPane(view);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setBorder(BorderFactory.createEmptyBorder());
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
add(scrollPane); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
JScrollBar horizontal = scrollPane.getHorizontalScrollBar(); JScrollBar horizontal = scrollPane.getHorizontalScrollBar();
west = new BasicArrowButton(BasicArrowButton.WEST); west = new BasicArrowButton(BasicArrowButton.WEST);
west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120)); west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120));
west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
add(west, BorderLayout.WEST); add(west, BorderLayout.WEST);
east = new BasicArrowButton(BasicArrowButton.EAST); east = new BasicArrowButton(BasicArrowButton.EAST);
east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120)); east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120));
east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow")));
add(east, BorderLayout.EAST); add(east, BorderLayout.EAST);
addComponentListener(new ComponentAdapter() { addComponentListener(new ComponentAdapter() {
@Override @Override
public void componentResized(ComponentEvent e) { public void componentResized(ComponentEvent e) {
refreshScrollButtonVisibility(); refreshScrollButtonVisibility();
} }
}); });
LOG.info("Creating scrollable toolbar");
add(scrollPane);
} catch (Exception e) {
LOG.info("Creating non-scrollable toolbar, since scroll bar initialization failed");
add(view);
}
} }
private void refreshScrollButtonVisibility() { private void refreshScrollButtonVisibility() {