show recent updates, added to status bar and help menu

This commit is contained in:
Branislav Stojkovic
2019-01-18 09:58:35 +01:00
parent 61444db46d
commit 19ea23895b
13 changed files with 125 additions and 29 deletions
@@ -21,23 +21,24 @@
*/
package org.diylc.common;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Point2D;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.diylc.appframework.simplemq.IMessageListener;
import org.diylc.appframework.simplemq.MessageDispatcher;
import org.diylc.appframework.update.VersionNumber;
import org.diylc.core.IDIYComponent;
import org.diylc.core.Project;
import org.diylc.core.Template;
import org.diylc.core.Theme;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Point2D;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.diylc.appframework.simplemq.IMessageListener;
import org.diylc.appframework.simplemq.MessageDispatcher;
import org.diylc.appframework.update.Version;
import org.diylc.appframework.update.VersionNumber;
import org.diylc.core.IDIYComponent;
import org.diylc.core.Project;
import org.diylc.core.Template;
import org.diylc.core.Theme;
/**
* Interface for communication between plug-ins and the application. Plug-ins may acquire
@@ -198,7 +199,14 @@ public interface IPlugInPort extends ISelectionProcessor, IMouseProcessor, IKeyP
*
* @return
*/
VersionNumber getCurrentVersionNumber();
VersionNumber getCurrentVersionNumber();
/**
* Returns few most recent versions.
*
* @return
*/
List<Version> getRecentUpdates();
/**
* Adds a list of components to the project.
@@ -86,6 +86,7 @@ public class Presenter implements IPlugInPort {
private static final Logger LOG = Logger.getLogger(Presenter.class);
public static VersionNumber CURRENT_VERSION = new VersionNumber(3, 0, 0);
public static List<Version> RECENT_VERSIONS = null;
// Read the latest version from the local update.xml file
static {
try {
@@ -93,6 +94,14 @@ public class Presenter implements IPlugInPort {
XStream xStream = new XStream(new DomDriver());
@SuppressWarnings("unchecked")
List<Version> allVersions = (List<Version>) xStream.fromXML(in);
RECENT_VERSIONS = allVersions.subList(allVersions.size() - 4, allVersions.size() - 1);
Collections.sort(RECENT_VERSIONS, new Comparator<Version>() {
@Override
public int compare(Version o1, Version o2) {
return -o1.getVersionNumber().compareTo(o2.getVersionNumber());
}
});
in.close();
CURRENT_VERSION = allVersions.get(allVersions.size() - 1).getVersionNumber();
} catch (IOException e) {
@@ -956,6 +965,11 @@ public class Presenter implements IPlugInPort {
public VersionNumber getCurrentVersionNumber() {
return CURRENT_VERSION;
}
@Override
public List<Version> getRecentUpdates() {
return RECENT_VERSIONS;
}
@Override
public void dragStarted(Point point, int dragAction, boolean forceSelectionRect) {