diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index dbfd571b..06eede2d 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3461,5 +3461,21 @@ https://github.com/bancika/diy-layout-creator/releases + + + 4 + 15 + 1 + + 2021-01-04 00:00:00.000 CET + + + + BUG_FIX + macOS: issues with scrollable toolbar that prevent it from starting on mac machines + + + https://github.com/bancika/diy-layout-creator/releases + diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 4a1a658e..abb5df61 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml index 5fbe27e3..809ac49e 100644 --- a/diylc/diylc-swing/build.xml +++ b/diylc/diylc-swing/build.xml @@ -10,7 +10,7 @@ - + diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 4a1a658e..abb5df61 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index cb5330da..ae1af875 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java index cbd9ca1f..8366677f 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/toolbox/ToolbarScrollPane.java @@ -29,9 +29,13 @@ import javax.swing.JScrollPane; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicArrowButton; +import org.apache.log4j.Logger; + public class ToolbarScrollPane extends JPanel { private static final long serialVersionUID = 1L; + + private static final Logger LOG = Logger.getLogger(ToolbarScrollPane.class); private Component view; private BasicArrowButton west; @@ -43,30 +47,37 @@ public class ToolbarScrollPane extends JPanel { setLayout(new BorderLayout()); setBorder(BorderFactory.createEmptyBorder()); - JScrollPane scrollPane = new JScrollPane(view); - scrollPane.setBorder(BorderFactory.createEmptyBorder()); - scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); - add(scrollPane); - - JScrollBar horizontal = scrollPane.getHorizontalScrollBar(); - - west = new BasicArrowButton(BasicArrowButton.WEST); - west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120)); - west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); - add(west, BorderLayout.WEST); - - east = new BasicArrowButton(BasicArrowButton.EAST); - east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120)); - east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); - add(east, BorderLayout.EAST); - - addComponentListener(new ComponentAdapter() { - @Override - public void componentResized(ComponentEvent e) { - refreshScrollButtonVisibility(); - } - }); + try { + JScrollPane scrollPane = new JScrollPane(view); + scrollPane.setBorder(BorderFactory.createEmptyBorder()); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER); + + JScrollBar horizontal = scrollPane.getHorizontalScrollBar(); + + west = new BasicArrowButton(BasicArrowButton.WEST); + west.setAction(new ActionMapAction("", horizontal, "negativeUnitIncrement", 120)); + west.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); + add(west, BorderLayout.WEST); + + east = new BasicArrowButton(BasicArrowButton.EAST); + east.setAction(new ActionMapAction("", horizontal, "positiveUnitIncrement", 120)); + east.setBorder(BorderFactory.createLineBorder(UIManager.getColor("Button.shadow"))); + add(east, BorderLayout.EAST); + + addComponentListener(new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent e) { + 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() {