diff --git a/diylc/diylc-core/lib/app-framework.jar b/diylc/diylc-core/lib/app-framework.jar index a9506755..a1ccd4f3 100644 Binary files a/diylc/diylc-core/lib/app-framework.jar and b/diylc/diylc-core/lib/app-framework.jar differ diff --git a/diylc/diylc-core/src/org/diylc/announcements/AnnouncementProvider.java b/diylc/diylc-core/src/org/diylc/announcements/AnnouncementProvider.java index 327c489e..bc5e4eb8 100644 --- a/diylc/diylc-core/src/org/diylc/announcements/AnnouncementProvider.java +++ b/diylc/diylc-core/src/org/diylc/announcements/AnnouncementProvider.java @@ -50,8 +50,7 @@ public class AnnouncementProvider { } } if (!hasUnread) - return ""; - sb.append("
Click OK to dismiss and mark these announcements as read."); + return ""; sb.append(""); return sb.toString(); } diff --git a/diylc/diylc-core/src/org/diylc/common/ISelectionProcessor.java b/diylc/diylc-core/src/org/diylc/common/ISelectionProcessor.java index 4c6bde25..d4aa5ccd 100644 --- a/diylc/diylc-core/src/org/diylc/common/ISelectionProcessor.java +++ b/diylc/diylc-core/src/org/diylc/common/ISelectionProcessor.java @@ -88,7 +88,7 @@ public interface ISelectionProcessor { * * @param xOffset * @param yOffset - * @param affectStuckComponents + * @param includeStuckComponents */ - void nudgeSelection(Size xOffset, Size yOffset, boolean affectStuckComponents); + void nudgeSelection(Size xOffset, Size yOffset, boolean includeStuckComponents); } diff --git a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java index 5c726f1d..0f952dbd 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/Presenter.java +++ b/diylc/diylc-core/src/org/diylc/presenter/Presenter.java @@ -856,11 +856,11 @@ public class Presenter implements IPlugInPort { } @Override - public void nudgeSelection(Size xOffset, Size yOffset, boolean affectStuckComponents) { + public void nudgeSelection(Size xOffset, Size yOffset, boolean includeStuckComponents) { if (selectedComponents == null || selectedComponents.isEmpty()) return; - LOG.debug(String.format("nudgeSelection(%s, %s)", xOffset, yOffset)); + LOG.debug(String.format("nudgeSelection(%s, %s, %s)", xOffset, yOffset, includeStuckComponents)); Map, Set> controlPointMap = new HashMap, Set>(); // If there aren't any control points, try to add all the selected // components with all their control points. That will allow the @@ -878,7 +878,7 @@ public class Presenter implements IPlugInPort { return; } - if (affectStuckComponents) { + if (includeStuckComponents) { includeStuckComponents(controlPointMap); } diff --git a/diylc/diylc-library/lib/app-framework.jar b/diylc/diylc-library/lib/app-framework.jar index a9506755..a1ccd4f3 100644 Binary files a/diylc/diylc-library/lib/app-framework.jar and b/diylc/diylc-library/lib/app-framework.jar differ diff --git a/diylc/diylc-swing/.classpath b/diylc/diylc-swing/.classpath index f556021b..0c6b9894 100644 --- a/diylc/diylc-swing/.classpath +++ b/diylc/diylc-swing/.classpath @@ -7,9 +7,10 @@ - - + + + diff --git a/diylc/diylc-swing/lib/app-framework.jar b/diylc/diylc-swing/lib/app-framework.jar index a9506755..a1ccd4f3 100644 Binary files a/diylc/diylc-swing/lib/app-framework.jar and b/diylc/diylc-swing/lib/app-framework.jar differ diff --git a/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar b/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar new file mode 100644 index 00000000..a7c8b4d2 Binary files /dev/null and b/diylc/diylc-swing/lib/balloontip-1.2.4.1.jar differ diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index cf4c326e..ebea60a0 100644 Binary files a/diylc/diylc-swing/lib/swing-framework.jar and b/diylc/diylc-swing/lib/swing-framework.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index cd4fa68c..a693aaba 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -86,7 +86,7 @@ public class MainFrame extends JFrame implements ISwingUI { public MainFrame() { super("DIYLC 3"); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - setPreferredSize(new Dimension(800, 600)); + setPreferredSize(new Dimension(1024, 768)); createBasePanels(); menuMap = new HashMap(); buttonGroupMap = new HashMap(); diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java index 44c09bb8..e1a5b3b4 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java @@ -13,6 +13,7 @@ import java.awt.event.MouseEvent; import java.awt.geom.Point2D; import java.text.DecimalFormat; import java.text.Format; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -27,6 +28,10 @@ import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingUtilities; +import javax.swing.UIManager; + +import net.java.balloontip.BalloonTip; +import net.java.balloontip.styles.EdgedBalloonStyle; import org.apache.log4j.Logger; import org.diylc.announcements.AnnouncementProvider; @@ -93,7 +98,20 @@ public class StatusBar extends JPanel implements IPlugIn { @Override public String doInBackground() throws Exception { Thread.sleep(1000); - return announcementProvider.getCurrentAnnouncements(false); + String announcements = announcementProvider.getCurrentAnnouncements(false); + + String update = getUpdateLabel().getUpdateChecker().findNewVersionShort(); + + if (update != null) { + String updateHtml = + "New version available: " + update + + "
Click the lighbulb icon in the bottom-right corner of the window for more info."; + if (announcements == null || announcements.length() == 0) + return "" + updateHtml + ""; + announcements = announcements.replace("", "" + updateHtml + "
"); + } + + return announcements; } @Override @@ -104,7 +122,8 @@ public class StatusBar extends JPanel implements IPlugIn { @Override public void complete(String result) { if (result != null && result.length() > 0) { - StatusBar.this.swingUI.showMessage(result, "Public Announcement", IView.INFORMATION_MESSAGE); + new BalloonTip(getUpdateLabel(), result, new EdgedBalloonStyle(UIManager.getColor("ToolTip.background"), + UIManager.getColor("ToolTip.foreground")), true); announcementProvider.dismissed(); } } diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 87b52d38..d170e5c5 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -1729,6 +1729,10 @@ IMPROVEMENT Use standard OSX/Mac "command" key for menu shortcuts and to un-stuck components + + + IMPROVEMENT + Use balloon to show announcements and update notifications BUG_FIX