id 'eclipse'
id "com.diffplug.gradle.spotless" version "3.28.0"
id 'com.github.johnrengelman.shadow' version '4.0.3'
- id 'com.install4j.gradle' version '9.0.6'
+ id 'com.install4j.gradle' version '10.0.3'
id 'com.dorongold.task-tree' version '2.1.0' // only needed to display task dependency tree with gradle task1 [task2 ...] taskTree
id 'com.palantir.git-version' version '0.13.0' apply false
}
// for install4j
JAVA_MIN_VERSION = JAVA_VERSION
JAVA_MAX_VERSION = JAVA_VERSION
- def jreInstallsDir = string(jre_installs_dir)
+ jreInstallsDir = string(jre_installs_dir)
if (jreInstallsDir.startsWith("~/")) {
jreInstallsDir = System.getProperty("user.home") + jreInstallsDir.substring(1)
}
- macosJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-mac-x64/jre")
- windowsJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-windows-x64/jre")
- linuxJavaVMDir = string("${jreInstallsDir}/jre-${JAVA_INTEGER_VERSION}-linux-x64/jre")
- macosJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_mac_x64.tar.gz")
- windowsJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_windows_x64.tar.gz")
- linuxJavaVMTgz = string("${jreInstallsDir}/tgz/jre_${JAVA_INTEGER_VERSION}_linux_x64.tar.gz")
install4jDir = string("${jalviewDir}/${install4j_utils_dir}")
install4jConfFileName = string("jalview-install4j-conf.install4j")
install4jConfFile = file("${install4jDir}/${install4jConfFileName}")
'JAVA_VERSION': JAVA_VERSION,
'JAVA_INTEGER_VERSION': JAVA_INTEGER_VERSION,
'VERSION': JALVIEW_VERSION,
- 'MACOS_JAVA_VM_DIR': macosJavaVMDir,
- 'WINDOWS_JAVA_VM_DIR': windowsJavaVMDir,
- 'LINUX_JAVA_VM_DIR': linuxJavaVMDir,
- 'MACOS_JAVA_VM_TGZ': macosJavaVMTgz,
- 'WINDOWS_JAVA_VM_TGZ': windowsJavaVMTgz,
- 'LINUX_JAVA_VM_TGZ': linuxJavaVMTgz,
'COPYRIGHT_MESSAGE': install4j_copyright_message,
'BUNDLE_ID': install4jBundleId,
'INTERNAL_ID': install4jInternalId,
'WINDOWS_ICONS_FILE': install4jWindowsIconsFile,
'PNG_ICON_FILE': install4jPngIconFile,
'BACKGROUND': install4jBackground,
+ ]
+ def varNameMap = [
+ 'mac': 'MACOS',
+ 'windows': 'WINDOWS',
+ 'linux': 'LINUX'
+ ]
+
+ // these are the bundled OS/architecture VMs needed by install4j
+ def osArch = [
+ [ "mac", "x64" ],
+ [ "mac", "aarch64" ],
+ [ "windows", "x64" ],
+ [ "linux", "x64" ],
+ [ "linux", "aarch64" ]
]
+ osArch.forEach { os, arch ->
+ variables[ sprintf("%s_%s_JAVA_VM_DIR", varNameMap[os], arch.toUpperCase(Locale.ROOT)) ] = sprintf("%s/jre-%s-%s-%s/jre", jreInstallsDir, JAVA_INTEGER_VERSION, os, arch)
+ // N.B. For some reason install4j requires the below filename to have underscores and not hyphens
+ // otherwise running `gradle installers` generates a non-useful error:
+ // `install4j: compilation failed. Reason: java.lang.NumberFormatException: For input string: "windows"`
+ variables[ sprintf("%s_%s_JAVA_VM_TGZ", varNameMap[os], arch.toUpperCase(Locale.ROOT)) ] = sprintf("%s/tgz/jre_%s_%s_%s.tar.gz", jreInstallsDir, JAVA_INTEGER_VERSION, os, arch)
+ }
//println("INSTALL4J VARIABLES:")
//variables.each{k,v->println("${k}=${v}")}
inputs.dir(getdownAppBaseDir)
inputs.file(install4jConfFile)
inputs.file("${install4jDir}/${install4j_info_plist_file_associations}")
- inputs.dir(macosJavaVMDir)
- inputs.dir(windowsJavaVMDir)
outputs.dir("${jalviewDir}/${install4j_build_dir}/${JAVA_VERSION}")
}
channel_properties_dir = utils/channels
channel_props = channel.props
-install4j_home_dir = ~/buildtools/install4j9
+install4j_home_dir = ~/buildtools/install4j10
install4j_copyright_message = ...
install4j_bundle_id = org.jalview.jalview-desktop
install4j_utils_dir = utils/install4j
install4j_images_dir = utils/install4j
-install4j_template = install4j9_template.install4j
+install4j_template = install4j10_template.install4j
install4j_info_plist_file_associations = file_associations_auto-Info_plist.xml
-install4j_installer_file_associations = file_associations_auto-install4j8.xml
+install4j_installer_file_associations = file_associations_auto-install4j10.xml
#install4j_DMG_uninstaller_app_files = uninstall_old_jalview_files.xml
install4j_build_dir = build/install4j
install4j_executable_name = jalviewg
UIManager.put("TabbedPane.tabWidthMode", "compact");
UIManager.put("TabbedPane.selectedBackground", Color.white);
}
+
+ Desktop.setLiveDragMode(Cache.getDefault("FLAT_LIVE_DRAG_MODE", true));
return set;
}
*/
void init()
{
+ setFrameIcon(WindowIcons.alignmentIcon);
+
// setBackground(Color.white); // BH 2019
if (!Jalview.isHeadlessMode())
.formatMessage("label.overview_params", new Object[]
{ this.getTitle() }), true, frame.getWidth(), frame.getHeight(),
true, true);
+ frame.setFrameIcon(WindowIcons.overviewIcon);
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
frame.addInternalFrameListener(
*/
package jalview.gui;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SequenceGroup;
-import jalview.util.MessageManager;
-
import java.awt.BorderLayout;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceGroup;
+import jalview.util.MessageManager;
+
/**
* A panel that allows the user to select which sequence-associated annotation
* rows to show or hide.
private void showFrame()
{
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.annotationIcon);
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
Desktop.addInternalFrame(frame,
*/
package jalview.gui;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.GraphLine;
-import jalview.datamodel.SequenceGroup;
-import jalview.gui.JalviewColourChooser.ColourChooserListener;
-import jalview.schemes.AnnotationColourGradient;
-import jalview.schemes.ColourSchemeI;
-import jalview.util.MessageManager;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.GraphLine;
+import jalview.datamodel.SequenceGroup;
+import jalview.gui.JalviewColourChooser.ColourChooserListener;
+import jalview.schemes.AnnotationColourGradient;
+import jalview.schemes.ColourSchemeI;
+import jalview.util.MessageManager;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
}
}
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.annotationIcon);
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
Desktop.addInternalFrame(frame,
package jalview.gui;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.HiddenColumns;
-import jalview.io.cache.JvCacheableInputBox;
-import jalview.schemes.AnnotationColourGradient;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-import jalview.viewmodel.annotationfilter.AnnotationFilterParameter;
-
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import javax.swing.JRadioButton;
import javax.swing.border.TitledBorder;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.HiddenColumns;
+import jalview.io.cache.JvCacheableInputBox;
+import jalview.schemes.AnnotationColourGradient;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.viewmodel.annotationfilter.AnnotationFilterParameter;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
{
super(av, ap);
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.annotationIcon);
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
Desktop.addInternalFrame(frame,
*/
package jalview.gui;
-import java.util.Locale;
-
-import jalview.api.FeatureRenderer;
-import jalview.bin.Cache;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.SequenceI;
-import jalview.io.AnnotationFile;
-import jalview.io.FeaturesFile;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.util.MessageManager;
-
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.PrintWriter;
+import java.util.Locale;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.SwingConstants;
+import jalview.api.FeatureRenderer;
+import jalview.bin.Cache;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.SequenceI;
+import jalview.io.AnnotationFile;
+import jalview.io.FeaturesFile;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.util.MessageManager;
+
/**
*
* GUI dialog for exporting features or alignment annotations depending upon
}
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.annotationIcon);
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
Dimension preferredSize = frame.getPreferredSize();
*/
package jalview.gui;
-import jalview.analysis.AlignSeq;
-import jalview.datamodel.AlignmentAnnotation;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.HiddenColumns;
-import jalview.datamodel.RnaViewerModel;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.ext.varna.RnaModel;
-import jalview.structure.SecondaryStructureListener;
-import jalview.structure.SelectionListener;
-import jalview.structure.SelectionSource;
-import jalview.structure.StructureSelectionManager;
-import jalview.structure.VamsasSource;
-import jalview.util.Comparison;
-import jalview.util.MessageManager;
-import jalview.util.ShiftList;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.util.Collection;
import fr.orsay.lri.varna.models.annotations.HighlightRegionAnnotation;
import fr.orsay.lri.varna.models.rna.ModeleBase;
import fr.orsay.lri.varna.models.rna.RNA;
+import jalview.analysis.AlignSeq;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
+import jalview.datamodel.RnaViewerModel;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.ext.varna.RnaModel;
+import jalview.structure.SecondaryStructureListener;
+import jalview.structure.SelectionListener;
+import jalview.structure.SelectionSource;
+import jalview.structure.StructureSelectionManager;
+import jalview.structure.VamsasSource;
+import jalview.util.Comparison;
+import jalview.util.MessageManager;
+import jalview.util.ShiftList;
public class AppVarna extends JInternalFrame
implements SelectionListener, SecondaryStructureListener,
*/
protected AppVarna(AlignmentPanel ap)
{
+ this.setFrameIcon(null);
this.ap = ap;
this.viewId = System.currentTimeMillis() + "." + this.hashCode();
vab = new AppVarnaBinding();
*/
package jalview.gui;
-import jalview.analysis.TreeBuilder;
-import jalview.analysis.scoremodels.ScoreModels;
-import jalview.analysis.scoremodels.SimilarityParams;
-import jalview.api.analysis.ScoreModelI;
-import jalview.api.analysis.SimilarityParamsI;
-import jalview.bin.Cache;
-import jalview.datamodel.SequenceGroup;
-import jalview.util.MessageManager;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
+import jalview.analysis.TreeBuilder;
+import jalview.analysis.scoremodels.ScoreModels;
+import jalview.analysis.scoremodels.SimilarityParams;
+import jalview.api.analysis.ScoreModelI;
+import jalview.api.analysis.SimilarityParamsI;
+import jalview.bin.Cache;
+import jalview.datamodel.SequenceGroup;
+import jalview.util.MessageManager;
+
/**
* A dialog where a user can choose and action Tree or PCA calculation options
*/
{
setLayout(new BorderLayout());
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.treeIcon);
frame.setContentPane(this);
this.setBackground(Color.white);
frame.addFocusListener(new FocusListener()
*/
package jalview.gui;
-import jalview.bin.Cache;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.jbgui.GCutAndPasteHtmlTransfer;
-import jalview.util.MessageManager;
-import jalview.viewmodel.AlignmentViewport;
-
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import javax.swing.event.HyperlinkEvent.EventType;
import javax.swing.event.HyperlinkListener;
+import jalview.bin.Cache;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.jbgui.GCutAndPasteHtmlTransfer;
+import jalview.util.MessageManager;
+import jalview.viewmodel.AlignmentViewport;
+
/**
* Cut'n'paste files into the desktop See JAL-1105
*
public CutAndPasteHtmlTransfer()
{
super();
+ this.setFrameIcon(WindowIcons.logoIcon);
displaySource.setSelected(false);
textarea.addKeyListener(new KeyListener()
{
*/
package jalview.gui;
-import jalview.bin.Cache;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.swing.JMenuItem;
+import javax.swing.JPopupMenu;
+import javax.swing.SwingUtilities;
+
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.api.ComplexAlignFile;
import jalview.api.FeatureSettingsModelI;
import jalview.api.FeaturesDisplayedI;
import jalview.api.FeaturesSourceI;
+import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.HiddenColumns;
import jalview.schemes.ColourSchemeI;
import jalview.util.MessageManager;
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.datatransfer.Transferable;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseEvent;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.swing.JMenuItem;
-import javax.swing.JPopupMenu;
-import javax.swing.SwingUtilities;
-
/**
* Cut'n'paste files into the desktop See JAL-1105
*
public CutAndPasteTransfer()
{
+ this.setFrameIcon(null);
SwingUtilities.invokeLater(new Runnable()
{
@Override
public static HashMap<String, FileWriter> savingFiles = new HashMap<String, FileWriter>();
+ private static int DRAG_MODE = JDesktopPane.OUTLINE_DRAG_MODE;
+
+ public static void setLiveDragMode(boolean b)
+ {
+ DRAG_MODE = b ? JDesktopPane.LIVE_DRAG_MODE
+ : JDesktopPane.OUTLINE_DRAG_MODE;
+ }
+
private JalviewChangeSupport changeSupport = new JalviewChangeSupport();
public static boolean nosplash = false;
}
getContentPane().add(desktop, BorderLayout.CENTER);
- desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
+ desktop.setDragMode(DRAG_MODE);
// This line prevents Windows Look&Feel resizing all new windows to maximum
// if previous window was maximised
{
frame = new JInternalFrame();
frame.setContentPane(this);
+ frame.setFrameIcon(WindowIcons.featuresIcon);
Rectangle bounds = af.getFeatureSettingsGeometry();
String title;
if (af.getAlignPanels().size() > 1 || Desktop.getAlignmentPanels(
*/
package jalview.gui;
-import java.util.Locale;
-
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
focusFixed = fixedFocus;
finders = new HashMap<>();
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.logoIcon);
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
frame.addInternalFrameListener(new InternalFrameAdapter()
*/
package jalview.gui;
-import jalview.bin.Cache;
-import jalview.jbgui.GFontChooser;
-import jalview.util.MessageManager;
-
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.geom.Rectangle2D;
import javax.swing.JInternalFrame;
import javax.swing.JLayeredPane;
+import jalview.bin.Cache;
+import jalview.jbgui.GFontChooser;
+import jalview.util.MessageManager;
+
/**
* DOCUMENT ME!
*
void init()
{
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.logoIcon);
frame.setContentPane(this);
smoothFont.setSelected(ap.av.antiAlias);
* along with Jalview. If not, see <http://www.gnu.org/licenses/>.
* The Jalview Authors are detailed in the 'AUTHORS' file.
*/
-
package jalview.gui;
+import java.awt.AWTEvent;
+import java.awt.ActiveEvent;
import java.awt.Component;
+import java.awt.Container;
import java.awt.Dialog.ModalityType;
+import java.awt.EventQueue;
import java.awt.HeadlessException;
+import java.awt.MenuComponent;
+import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseMotionAdapter;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
+import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
+import javax.swing.event.InternalFrameEvent;
+import javax.swing.event.InternalFrameListener;
import jalview.util.Platform;
import jalview.util.dialogrunner.DialogRunnerI;
{
private static final long serialVersionUID = -3019167117756785229L;
- private static Object mockResponse = JOptionPane.CANCEL_OPTION;
+ private static Object mockResponse = JvOptionPane.CANCEL_OPTION;
private static boolean interactiveMode = true;
private Map<Object, Callable<Void>> callbacks = new HashMap<>();
/*
- * JalviewJS reports user choice in the dialog as the selected
- * option (text); this list allows conversion to index (int)
+ * JalviewJS reports user choice in the dialog as the selected option (text);
+ * this list allows conversion to index (int)
*/
List<Object> ourOptions;
}
switch (optionType)
{
- case JOptionPane.YES_NO_CANCEL_OPTION:
+ case JvOptionPane.YES_NO_CANCEL_OPTION:
// FeatureRenderer amendFeatures ?? TODO ??
// Chimera close
// PromptUserConfig
// $FALL-THROUGH$
default:
- case JOptionPane.YES_NO_OPTION:
+ case JvOptionPane.YES_NO_OPTION:
// PromptUserConfig usage stats
// for now treated as "OK CANCEL"
// $FALL-THROUGH$
- case JOptionPane.OK_CANCEL_OPTION:
+ case JvOptionPane.OK_CANCEL_OPTION:
// will fall back to simple HTML
return JOptionPane.showConfirmDialog(parentComponent, message, title,
optionType);
}
switch (optionType)
{
- case JOptionPane.YES_NO_CANCEL_OPTION:
+ case JvOptionPane.YES_NO_CANCEL_OPTION:
// ColourMenuHelper.addMenuItmers.offerRemoval TODO
- case JOptionPane.YES_NO_OPTION:
+ case JvOptionPane.YES_NO_OPTION:
// UserDefinedColoursSave -- relevant? TODO
// $FALL-THROUGH$
default:
- case JOptionPane.OK_CANCEL_OPTION:
+ case JvOptionPane.OK_CANCEL_OPTION:
// EditNameDialog --- uses panel for messsage TODO
}
switch (optionType)
{
- case JOptionPane.YES_NO_CANCEL_OPTION:
- case JOptionPane.YES_NO_OPTION:
+ case JvOptionPane.YES_NO_CANCEL_OPTION:
+ case JvOptionPane.YES_NO_OPTION:
// UserQuestionanaireCheck
// VamsasApplication
// $FALL-THROUGH$
default:
- case JOptionPane.OK_CANCEL_OPTION:
+ case JvOptionPane.OK_CANCEL_OPTION:
// will fall back to simple HTML
return JOptionPane.showConfirmDialog(parentComponent, message, title,
optionType, messageType);
}
switch (optionType)
{
- case JOptionPane.YES_NO_CANCEL_OPTION:
- case JOptionPane.YES_NO_OPTION:
+ case JvOptionPane.YES_NO_CANCEL_OPTION:
+ case JvOptionPane.YES_NO_OPTION:
//$FALL-THROUGH$
default:
- case JOptionPane.OK_CANCEL_OPTION:
+ case JvOptionPane.OK_CANCEL_OPTION:
// Preferences editLink/newLink
return JOptionPane.showConfirmDialog(parentComponent, message, title,
optionType, messageType, icon);
public static void resetMock()
{
- setMockResponse(JOptionPane.CANCEL_OPTION);
+ setMockResponse(JvOptionPane.CANCEL_OPTION);
setInteractiveMode(true);
}
{
switch (messageType)
{
- case JOptionPane.WARNING_MESSAGE:
+ case JvOptionPane.WARNING_MESSAGE:
prefix = "WARNING! ";
break;
- case JOptionPane.ERROR_MESSAGE:
+ case JvOptionPane.ERROR_MESSAGE:
prefix = "ERROR! ";
break;
default:
useButtons ? initialValueButton : initialValue);
/*
- * In Java, the response is returned to this thread and handled here;
- * (for Javascript, see propertyChange)
+ * In Java, the response is returned to this thread and handled here; (for
+ * Javascript, see propertyChange)
*/
if (!Platform.isJS())
/**
else
{
/*
- * This is java similar to the swingjs handling, with the callbacks
- * attached to the button press of the dialog. This means we can use
- * a non-modal JDialog for the confirmation without blocking the GUI.
+ * This is java similar to the swingjs handling, with the callbacks attached to
+ * the button press of the dialog. This means we can use a non-modal JDialog for
+ * the confirmation without blocking the GUI.
*/
+ JOptionPane joptionpane = new JOptionPane();
+ // Make button options
+ int[] buttonActions = { JvOptionPane.YES_OPTION,
+ JvOptionPane.NO_OPTION, JvOptionPane.CANCEL_OPTION };
+
+ // we need the strings to make the buttons with actionEventListener
+ if (options == null)
+ {
+ ArrayList<String> options_default = new ArrayList<>();
+ options_default
+ .add(UIManager.getString("OptionPane.yesButtonText"));
+ if (optionType == JvOptionPane.YES_NO_OPTION
+ || optionType == JvOptionPane.YES_NO_CANCEL_OPTION)
+ {
+ options_default
+ .add(UIManager.getString("OptionPane.noButtonText"));
+ }
+ if (optionType == JvOptionPane.YES_NO_CANCEL_OPTION)
+ {
+ options_default
+ .add(UIManager.getString("OptionPane.cancelButtonText"));
+ }
+ options = options_default.toArray();
+ }
- JDialog dialog = createDialog(parentComponent, message, title,
- optionType, messageType, icon, options, initialValue, modal,
- buttons);
- jalview.bin.Console.debug("About to setVisible(true)");
+ ArrayList<JButton> options_btns = new ArrayList<>();
+ Object initialValue_btn = null;
+ if (!Platform.isJS()) // JalviewJS already uses callback, don't need to
+ // add them here
+ {
+ for (int i = 0; i < options.length && i < 3; i++)
+ {
+ Object o = options[i];
+ int buttonAction = buttonActions[i];
+ Callable<Void> action = callbacks.get(buttonAction);
+ JButton jb = new JButton();
+ jb.setText((String) o);
+ jb.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ joptionpane.setValue(buttonAction);
+ if (action != null)
+ Executors.newSingleThreadExecutor().submit(action);
+ // joptionpane.transferFocusBackward();
+ joptionpane.transferFocusBackward();
+ joptionpane.setVisible(false);
+ // put focus and raise parent window if possible, unless cancel
+ // button pressed
+ boolean raiseParent = (parentComponent != null);
+ if (buttonAction == JvOptionPane.CANCEL_OPTION)
+ raiseParent = false;
+ if (optionType == JvOptionPane.YES_NO_OPTION
+ && buttonAction == JvOptionPane.NO_OPTION)
+ raiseParent = false;
+ if (raiseParent)
+ {
+ parentComponent.requestFocus();
+ if (parentComponent instanceof JInternalFrame)
+ {
+ JInternalFrame jif = (JInternalFrame) parentComponent;
+ jif.show();
+ jif.moveToFront();
+ jif.grabFocus();
+ }
+ else if (parentComponent instanceof Window)
+ {
+ Window w = (Window) parentComponent;
+ w.toFront();
+ w.requestFocus();
+ }
+ }
+ joptionpane.setVisible(false);
+ }
+ });
+ options_btns.add(jb);
+ if (o.equals(initialValue))
+ initialValue_btn = jb;
+ }
+ }
+ joptionpane.setMessage(message);
+ joptionpane.setMessageType(messageType);
+ joptionpane.setOptionType(optionType);
+ joptionpane.setIcon(icon);
+ joptionpane.setOptions(
+ Platform.isJS() ? options : options_btns.toArray());
+ joptionpane.setInitialValue(
+ Platform.isJS() ? initialValue : initialValue_btn);
+
+ JDialog dialog = joptionpane.createDialog(parentComponent, title);
+ dialog.setIconImage(WindowIcons.logoIcon.getImage());
+ dialog.setModalityType(modal ? ModalityType.APPLICATION_MODAL
+ : ModalityType.MODELESS);
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
- jalview.bin.Console.debug("Just setVisible(true)");
}
}
handleResponse(getMockResponse());
}
+ // need to set these separately so we can set the title bar icon later
+ this.setOptionType(yesNoCancelOption);
+ this.setMessageType(questionMessage);
+ this.setIcon(icon);
+ this.setInitialValue(initresponse);
+ this.setOptions(options);
+ this.setMessage(mainPanel);
+
ourOptions = Arrays.asList(options);
int response;
if (parentComponent != this)
{
- response = JOptionPane.showInternalOptionDialog(parentComponent,
- mainPanel, title, yesNoCancelOption, questionMessage, icon,
- options, initresponse);
+ JInternalFrame jif = this.createInternalFrame(parentComponent, title);
+ jif.setFrameIcon(WindowIcons.logoIcon);
+ jif.addInternalFrameListener(new InternalFrameListener()
+ {
+ @Override
+ public void internalFrameActivated(InternalFrameEvent arg0)
+ {
+ }
+
+ @Override
+ public void internalFrameClosed(InternalFrameEvent arg0)
+ {
+ JvOptionPane.this.internalDialogHandleResponse();
+ }
+
+ @Override
+ public void internalFrameClosing(InternalFrameEvent arg0)
+ {
+ }
+
+ @Override
+ public void internalFrameDeactivated(InternalFrameEvent arg0)
+ {
+ }
+
+ @Override
+ public void internalFrameDeiconified(InternalFrameEvent arg0)
+ {
+ }
+
+ @Override
+ public void internalFrameIconified(InternalFrameEvent arg0)
+ {
+ }
+
+ @Override
+ public void internalFrameOpened(InternalFrameEvent arg0)
+ {
+ }
+ });
+ jif.setVisible(true);
+ startModal(jif);
+ return;
}
else
{
- response = JOptionPane.showOptionDialog(parentComponent, mainPanel,
- title, yesNoCancelOption, questionMessage, icon, options,
- initresponse);
+ JDialog dialog = this.createDialog(parentComponent, title);
+ dialog.setIconImage(WindowIcons.logoIcon.getImage());
+ dialog.setVisible(true); // blocking
+ this.internalDialogHandleResponse();
+ return;
}
+ }
+
+ private void internalDialogHandleResponse()
+ {
+ String responseString = (String) this.getValue();
+ int response = ourOptions.indexOf(responseString);
+
if (!Platform.isJS())
/**
* Java only
}
/*
- @Override
- public JvOptionPane setResponseHandler(Object response, Runnable action)
- {
- callbacks.put(response, new Callable<Void>()
- {
- @Override
- public Void call()
- {
- action.run();
- return null;
- }
- });
- return this;
- }
- */
+ * @Override public JvOptionPane setResponseHandler(Object response, Runnable
+ * action) { callbacks.put(response, new Callable<Void>() {
+ *
+ * @Override public Void call() { action.run(); return null; } }); return this;
+ * }
+ */
@Override
public JvOptionPane setResponseHandler(Object response,
Callable<Void> action)
// A better hack which works is to create a new JFrame parent with
// setAlwaysOnTop(true)
JFrame dialogParent = new JFrame();
+ dialogParent.setIconImage(WindowIcons.logoIcon.getImage());
dialogParent.setAlwaysOnTop(true);
int answer = JOptionPane.showConfirmDialog(dialogParent, label,
int JOPTIONPANE_OPTION, int JOPTIONPANE_MESSAGETYPE, Icon icon,
Object[] options, Object initialValue, boolean modal)
{
- showDialogOnTopAsync(new JFrame(), label, actionString,
- JOPTIONPANE_OPTION, JOPTIONPANE_MESSAGETYPE, icon, options,
- initialValue, modal);
+ JFrame frame = new JFrame();
+ frame.setIconImage(WindowIcons.logoIcon.getImage());
+ showDialogOnTopAsync(frame, label, actionString, JOPTIONPANE_OPTION,
+ JOPTIONPANE_MESSAGETYPE, icon, options, initialValue, modal);
}
public void showDialogOnTopAsync(JFrame dialogParent, Object label,
public void handleResponse(Object response)
{
/*
- * this test is for NaN in Chrome
- */
+ * this test is for NaN in Chrome
+ */
if (response != null && !response.equals(response))
{
return;
Platform.isJS() ? initialValue : initialValueButton);
JDialog dialog = joptionpane.createDialog(parentComponent, title);
+ dialog.setIconImage(WindowIcons.logoIcon.getImage());
dialog.setModalityType(
modal ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
return false;
}
+
+ /**
+ * This helper method makes the JInternalFrame wait until it is notified by an
+ * InternalFrameClosing event. This method also adds the given JOptionPane to
+ * the JInternalFrame and sizes it according to the JInternalFrame's preferred
+ * size.
+ *
+ * @param f
+ * The JInternalFrame to make modal.
+ */
+ private static void startModal(JInternalFrame f)
+ {
+ // We need to add an additional glasspane-like component directly
+ // below the frame, which intercepts all mouse events that are not
+ // directed at the frame itself.
+ JPanel modalInterceptor = new JPanel();
+ modalInterceptor.setOpaque(false);
+ JLayeredPane lp = JLayeredPane.getLayeredPaneAbove(f);
+ lp.setLayer(modalInterceptor, JLayeredPane.MODAL_LAYER.intValue());
+ modalInterceptor.setBounds(0, 0, lp.getWidth(), lp.getHeight());
+ modalInterceptor.addMouseListener(new MouseAdapter()
+ {
+ });
+ modalInterceptor.addMouseMotionListener(new MouseMotionAdapter()
+ {
+ });
+ lp.add(modalInterceptor);
+ f.toFront();
+
+ // We need to explicitly dispatch events when we are blocking the event
+ // dispatch thread.
+ EventQueue queue = Toolkit.getDefaultToolkit().getSystemEventQueue();
+ try
+ {
+ while (!f.isClosed())
+ {
+ if (EventQueue.isDispatchThread())
+ {
+ // The getNextEventMethod() issues wait() when no
+ // event is available, so we don't need do explicitly wait().
+ AWTEvent ev = queue.getNextEvent();
+ // This mimics EventQueue.dispatchEvent(). We can't use
+ // EventQueue.dispatchEvent() directly, because it is
+ // protected, unfortunately.
+ if (ev instanceof ActiveEvent)
+ ((ActiveEvent) ev).dispatch();
+ else if (ev.getSource() instanceof Component)
+ ((Component) ev.getSource()).dispatchEvent(ev);
+ else if (ev.getSource() instanceof MenuComponent)
+ ((MenuComponent) ev.getSource()).dispatchEvent(ev);
+ // Other events are ignored as per spec in
+ // EventQueue.dispatchEvent
+ }
+ else
+ {
+ // Give other threads a chance to become active.
+ Thread.yield();
+ }
+ }
+ } catch (InterruptedException ex)
+ {
+ // If we get interrupted, then leave the modal state.
+ } finally
+ {
+ // Clean up the modal interceptor.
+ lp.remove(modalInterceptor);
+
+ // Remove the internal frame from its parent, so it is no longer
+ // lurking around and clogging memory.
+ Container parent = f.getParent();
+ if (parent != null)
+ parent.remove(f);
+ }
+ }
}
*/
package jalview.gui;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.print.PageFormat;
+import java.awt.print.Printable;
+import java.awt.print.PrinterException;
+import java.awt.print.PrinterJob;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JMenuItem;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
+
import jalview.analysis.scoremodels.ScoreModels;
import jalview.api.AlignViewportI;
import jalview.api.analysis.ScoreModelI;
import jalview.viewmodel.AlignmentViewport;
import jalview.viewmodel.PCAModel;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.Graphics;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.print.PageFormat;
-import java.awt.print.Printable;
-import java.awt.print.PrinterException;
-import java.awt.print.PrinterJob;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
/**
* The panel holding the Principal Component Analysis 3-D visualisation
*/
SimilarityParamsI params)
{
super();
+ this.setFrameIcon(WindowIcons.treeIcon);
this.av = alignPanel.av;
this.ap = alignPanel;
boolean nucleotide = av.getAlignment().isNucleotide();
{
super();
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.preferencesIcon);
frame.setContentPane(this);
if (!Platform.isJS())
/**
*/
package jalview.gui;
-import jalview.analysis.AlignSeq;
-import jalview.commands.CommandI;
-import jalview.commands.EditCommand;
-import jalview.commands.EditCommand.Action;
-import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
-import jalview.jbgui.GSliderPanel;
-import jalview.util.MessageManager;
-
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
+import jalview.analysis.AlignSeq;
+import jalview.commands.CommandI;
+import jalview.commands.EditCommand;
+import jalview.commands.EditCommand.Action;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.jbgui.GSliderPanel;
+import jalview.util.MessageManager;
+
/**
* DOCUMENT ME!
*
worker.start();
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.logoIcon);
frame.setContentPane(this);
Desktop.addInternalFrame(frame,
MessageManager
frame = new JInternalFrame();
frame.setContentPane(this);
+ frame.setFrameIcon(WindowIcons.fetchIcon);
Desktop.addInternalFrame(frame, getFrameTitle(), true, 400,
Platform.isAMacAndNotJS() ? 240 : 180);
}
{
sliderPanel = new SliderPanel(ap, rs.getConservationInc(), true, rs);
conservationSlider = new JInternalFrame();
+ conservationSlider.setFrameIcon(WindowIcons.logoIcon);
conservationSlider.setContentPane(sliderPanel);
conservationSlider.setLayer(JLayeredPane.PALETTE_LAYER);
}
{
sliderPanel = new SliderPanel(ap, threshold, false, rs);
PIDSlider = new JInternalFrame();
+ PIDSlider.setFrameIcon(WindowIcons.logoIcon);
PIDSlider.setContentPane(sliderPanel);
PIDSlider.setLayer(JLayeredPane.PALETTE_LAYER);
}
*/
protected void init()
{
+ setFrameIcon(WindowIcons.splitIcon);
getTopFrame().setSplitFrame(this);
getBottomFrame().setSplitFrame(this);
getTopFrame().setVisible(true);
public StructureViewerBase()
{
super();
+ setFrameIcon(WindowIcons.structureIcon);
}
/**
*/
package jalview.gui;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
+import javax.swing.ButtonGroup;
+import javax.swing.JMenuItem;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
+
+import org.jibble.epsgraphics.EpsGraphics2D;
+
import jalview.analysis.AlignmentSorter;
import jalview.analysis.AverageDistanceTree;
import jalview.analysis.NJTree;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
-import org.jibble.epsgraphics.EpsGraphics2D;
-
/**
* DOCUMENT ME!
*
SimilarityParamsI options)
{
super();
+ this.setFrameIcon(WindowIcons.treeIcon);
this.similarityParams = options;
initTreePanel(ap, type, modelName, null, null);
{
colorChooser.getSelectionModel().addChangeListener(this);
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.logoIcon);
frame.setContentPane(this);
Desktop.addInternalFrame(frame,
MessageManager.getString("label.user_defined_colours"),
*/
package jalview.gui;
-import java.util.Locale;
-
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
+import java.util.Locale;
import java.util.Vector;
import javax.swing.JComponent;
boolean makeVisible)
{
frame = new JInternalFrame();
+ frame.setFrameIcon(WindowIcons.logoIcon);
frame.setContentPane(this);
Desktop.addInternalFrame(frame, title, makeVisible, width, height);
frame.setClosable(false);
--- /dev/null
+package jalview.gui;
+
+import javax.swing.ImageIcon;
+
+import jalview.util.ChannelProperties;
+
+public class WindowIcons
+{
+ public static final ImageIcon logoIcon = new ImageIcon(
+ ChannelProperties.getImage("logo.16"));
+
+ protected static final ImageIcon plainIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/plainIcon.png"));
+
+ protected static final ImageIcon alignmentIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/alignmentIcon.png"));
+
+ protected static final ImageIcon featuresIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/featuresIcon.png"));
+
+ protected static final ImageIcon fetchIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/fetchIcon.png"));
+
+ protected static final ImageIcon annotationIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/annotationIcon.png"));
+
+ protected static final ImageIcon overviewIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/overviewIcon.png"));
+
+ protected static final ImageIcon treeIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/treeIcon.png"));
+
+ protected static final ImageIcon structureIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/structureIcon.png"));
+
+ protected static final ImageIcon splitIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/splitIcon.png"));
+
+ protected static final ImageIcon preferencesIcon = new ImageIcon(
+ WindowIcons.class
+ .getResource("/images/windowIcons/preferencesIcon.png"));
+}
//////////////////////////////////////////////////////////////////
package jalview.io;
+import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.util.dialogrunner.DialogRunnerI;
+
import java.awt.Component;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.BoxLayout;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JCheckBox;
+import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JList;
import javax.swing.JOptionPane;
import jalview.bin.Cache;
import jalview.gui.JvOptionPane;
+import jalview.gui.WindowIcons;
import jalview.util.MessageManager;
import jalview.util.Platform;
import jalview.util.dialogrunner.DialogRunnerI;
break;
}
}
+
+ @Override
+ protected JDialog createDialog(Component parent) throws HeadlessException
+ {
+ JDialog dialog = super.createDialog(parent);
+ dialog.setIconImage(WindowIcons.logoIcon.getImage());
+ return dialog;
+ }
+
}
### Edited to use adoptium domain to gain access to Java 17 (LTS) versions.
BASE=https://api.adoptium.net/v3/binary/latest
+ZULU_BASE=https://cdn.azul.com/zulu/bin
RELEASE_TYPE=ga
JVM_IMPL=hotspot
HEAP_SIZE=normal
VENDOR=eclipse
IMAGE_TYPE=jdk
+TAR=tar
+ZIP=zip
+UNZIP=unzip
+
+STRIP_MAC_APP_BUNDLING=false
+# archives not needed for JDKs
+CREATE_ARCHIVES=""
+# need zip with top-level jre dir for getdown updates. need tgz without top-level jre dir for install4j bundling
RM=/bin/rm
# unzip-strip from https://superuser.com/questions/518347/equivalent-to-tars-strip-components-1-in-unzip
-unzip-strip() (
+unzip-strip() {
local zip=$1
local dest=${2:-.}
- local temp=$(mktemp -d) && unzip -qq -d "$temp" "$zip" && mkdir -p "$dest" &&
+ local temp=$(mktemp -d) && $UNZIP -qq -d "$temp" "$zip" && mkdir -p "$dest" &&
shopt -s dotglob && local f=("$temp"/*) &&
if (( ${#f[@]} == 1 )) && [[ -d "${f[0]}" ]] ; then
mv "$temp"/*/* "$dest"
else
mv "$temp"/* "$dest"
fi && rmdir "$temp"/* "$temp"
-)
+}
+
+dl_zulu() {
+ local OS="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local TARFILE="$4"
+ declare -A osmap
+ osmap[mac]=macosx
+ osmap[windows]=win
+ osmap[linux]=linux
+ ZOS="${osmap[$OS]}"
+ echo "- Looking for download from Azul"
+ LATEST_DL_URL_FILE=$(wget -q -O - "${ZULU_BASE}/" | perl -n -e 'm/<a\b[^>]*href="(([^"]*\/)?zulu[^"]*-ca-'"${IMAGE_TYPE}""${VERSION}"'\.[^"]*-'"${ZOS}"'_'"${ARCH}"'.tar.gz)"[^"]*>/ && print "$1\n";' | tail -1)
+ local URL="${ZULU_BASE}/${LATEST_DL_URL_FILE}"
+ if [ -z "${LATEST_DL_URL_FILE}" ]; then
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' found at Azul"
+ return 1
+ fi
+ echo "- Found at Azul. Downloading '${URL}'"
+ wget -q -O "${TARFILE}" "${URL}" "${TARFILE}"
+ echo RETURN=$?
+ if [ "$?" != 0 ]; then
+ echo "- Download from Azul failed"
+ return 1
+ fi
+ return 0
+}
+
+declare -A DOWNLOAD_SUMMARY
for FEATURE_VERSION in 8 11 17; do
for OS_ARCH in mac:x64 mac:aarch64 windows:x64 linux:x64 linux:arm linux:aarch64; do
ARCH=${OS_ARCH#*:}
NAME="${IMAGE_TYPE}-${FEATURE_VERSION}-${OS}-${ARCH}"
TARFILE="${NAME}.tgz"
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None"
+ STRIP_COMPONENTS=1
+ MAC_STRIP_COMPONENTS=3
echo "* Downloading ${TARFILE}"
URL="${BASE}/${FEATURE_VERSION}/${RELEASE_TYPE}/${OS}/${ARCH}/${IMAGE_TYPE}/${JVM_IMPL}/${HEAP_SIZE}/${VENDOR}"
wget -q -O "${TARFILE}" "${URL}"
if [ "$?" != 0 ]; then
- echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}'"
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' at Adoptium"
$RM -f "${TARFILE}"
- continue;
+
+ # Try Azul Zulu (not an API, a bit messier, but has Java 8 JRE for mac:aarch64
+ dl_zulu "${OS}" "${ARCH}" "${FEATURE_VERSION}" "${TARFILE}"
+
+ if [ "$?" != 0 ]; then
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None"
+ continue;
+ fi
+ STRIP_COMPONENTS=2
+ MAC_STRIP_COMPONENTS=4
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Azul"
+ echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Azul"
+ else
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Adoptium"
+ echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Adoptium"
fi
echo "Unpacking ${TARFILE}"
JREDIR="${NAME}/${IMAGE_TYPE}"
RET=$?
else
echo "using tar"
- tar --strip-components=1 -C "${JREDIR}" -zxf "${TARFILE}"
- RET=$?
+ if [ x$OS = xmac -a x$STRIP_MAC_APP_BUNDLING = xtrue ]; then
+ echo "Running $TAR --strip-components=\"${MAC_STRIP_COMPONENTS}\" -C \"${JREDIR}\" -zxf \"${TARFILE}\" \"*/Contents/Home\""
+ $TAR --strip-components="${MAC_STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}" "*/Contents/Home"
+ RET=$?
+ else
+ $TAR --strip-components="${STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}"
+ RET=$?
+ fi
fi
if [ "$RET" != 0 ]; then
echo "Error unpacking ${TARFILE}"
exit 1
fi
$RM "${TARFILE}"
+ if [ \! -z "$CREATE_ARCHIVES" ]; then
+ for CREATEARCHIVE in ${CREATE_ARCHIVES}; do
+ ARCHIVEDIR=$CREATEARCHIVE
+ case $CREATEARCHIVE in
+ zip)
+ EXT=${CREATEARCHIVE}
+ echo "Creating ${NAME}.${EXT} for getdown updates"
+ [ \! -d ${ARCHIVEDIR} ] && mkdir -p "${ARCHIVEDIR}"
+ ABSARCHIVEDIR="${PWD}/$ARCHIVEDIR"
+ ZIPFILE="${ABSARCHIVEDIR}/${NAME}.${CREATEARCHIVE}"
+ [ -e "${ZIPFILE}" ] && $RM "${ZIPFILE}"
+ cd ${NAME}
+ $ZIP -X -r "${ZIPFILE}" "${IMAGE_TYPE}"
+ cd -
+ ;;
+ tgz)
+ EXT=tar.gz
+ echo "Creating ${NAME}.${EXT} for install4j bundling"
+ [ \! -d ${ARCHIVEDIR} ] && mkdir -p "${ARCHIVEDIR}"
+ $TAR -C "${JREDIR}" -zcf "${ARCHIVEDIR}/${NAME}.${EXT}" .
+ # make symbolic link with _ instead of - for install4j9
+ NEWNAME=${NAME//-/_}
+ echo "Linking from ${NEWNAME}.${EXT} for install4j9"
+ [ -e "${ARCHIVEDIR}/${NEWNAME}.${EXT}" ] && $RM "${ARCHIVEDIR}/${NEWNAME}.${EXT}"
+ ln -s "${NAME}.${EXT}" "${ARCHIVEDIR}/${NEWNAME}.${EXT}"
+ ;;
+ *)
+ echo "Archiving as '${CREATEARCHIVE}' file not supported"
+ ;;
+ esac
+ done
+ fi
done
done
+echo ""
+echo "Download Summary"
+for OA in "${!DOWNLOAD_SUMMARY[@]}"; do
+ echo "$OA: ${DOWNLOAD_SUMMARY[$OA]}"
+done
+
### Edited to use adoptium domain to gain access to Java 17 (LTS) versions.
BASE=https://api.adoptium.net/v3/binary/latest
+ZULU_BASE=https://cdn.azul.com/zulu/bin
RELEASE_TYPE=ga
JVM_IMPL=hotspot
HEAP_SIZE=normal
RM=/bin/rm
# unzip-strip from https://superuser.com/questions/518347/equivalent-to-tars-strip-components-1-in-unzip
-unzip-strip() (
+unzip-strip() {
local zip=$1
local dest=${2:-.}
local temp=$(mktemp -d) && $UNZIP -qq -d "$temp" "$zip" && mkdir -p "$dest" &&
else
mv "$temp"/* "$dest"
fi && rmdir "$temp"/* "$temp"
-)
+}
+
+dl_zulu() {
+ local OS="$1"
+ local ARCH="$2"
+ local VERSION="$3"
+ local TARFILE="$4"
+ declare -A osmap
+ osmap[mac]=macosx
+ osmap[windows]=win
+ osmap[linux]=linux
+ ZOS="${osmap[$OS]}"
+ echo "- Looking for download from Azul"
+ LATEST_DL_URL_FILE=$(wget -q -O - "${ZULU_BASE}/" | perl -n -e 'm/<a\b[^>]*href="(([^"]*\/)?zulu[^"]*-ca-'"${IMAGE_TYPE}""${VERSION}"'\.[^"]*-'"${ZOS}"'_'"${ARCH}"'.tar.gz)"[^"]*>/ && print "$1\n";' | tail -1)
+ local URL="${ZULU_BASE}/${LATEST_DL_URL_FILE}"
+ if [ -z "${LATEST_DL_URL_FILE}" ]; then
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' found at Azul"
+ return 1
+ fi
+ echo "- Found at Azul. Downloading '${URL}'"
+ wget -q -O "${TARFILE}" "${URL}" "${TARFILE}"
+ echo RETURN=$?
+ if [ "$?" != 0 ]; then
+ echo "- Download from Azul failed"
+ return 1
+ fi
+ return 0
+}
+
+declare -A DOWNLOAD_SUMMARY
for FEATURE_VERSION in 8 11 17; do
for OS_ARCH in mac:x64 mac:aarch64 windows:x64 linux:x64 linux:arm linux:aarch64; do
ARCH=${OS_ARCH#*:}
NAME="${IMAGE_TYPE}-${FEATURE_VERSION}-${OS}-${ARCH}"
TARFILE="${NAME}.tgz"
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None"
+ STRIP_COMPONENTS=1
+ MAC_STRIP_COMPONENTS=3
echo "* Downloading ${TARFILE}"
URL="${BASE}/${FEATURE_VERSION}/${RELEASE_TYPE}/${OS}/${ARCH}/${IMAGE_TYPE}/${JVM_IMPL}/${HEAP_SIZE}/${VENDOR}"
wget -q -O "${TARFILE}" "${URL}"
if [ "$?" != 0 ]; then
- echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}'"
+ echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' at Adoptium"
$RM -f "${TARFILE}"
- continue;
+
+ # Try Azul Zulu (not an API, a bit messier, but has Java 8 JRE for mac:aarch64
+ dl_zulu "${OS}" "${ARCH}" "${FEATURE_VERSION}" "${TARFILE}"
+
+ if [ "$?" != 0 ]; then
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None"
+ continue;
+ fi
+ STRIP_COMPONENTS=2
+ MAC_STRIP_COMPONENTS=4
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Azul"
+ echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Azul"
+ else
+ DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Adoptium"
+ echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Adoptium"
fi
echo "Unpacking ${TARFILE}"
JREDIR="${NAME}/${IMAGE_TYPE}"
else
echo "using tar"
if [ x$OS = xmac -a x$STRIP_MAC_APP_BUNDLING = xtrue ]; then
- $TAR --strip-components=3 -C "${JREDIR}" -zxf "${TARFILE}" "*/Contents/Home"
+ echo "Running $TAR --strip-components=\"${MAC_STRIP_COMPONENTS}\" -C \"${JREDIR}\" -zxf \"${TARFILE}\" \"*/Contents/Home\""
+ $TAR --strip-components="${MAC_STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}" "*/Contents/Home"
RET=$?
else
- $TAR --strip-components=1 -C "${JREDIR}" -zxf "${TARFILE}"
+ $TAR --strip-components="${STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}"
RET=$?
fi
fi
done
done
+echo ""
+echo "Download Summary"
+for OA in "${!DOWNLOAD_SUMMARY[@]}"; do
+ echo "$OA: ${DOWNLOAD_SUMMARY[$OA]}"
+done
+
--- /dev/null
+#!/usr/bin/env perl
+
+use strict;
+
+my $i4jversion = 10;
+if ($ARGV[0] eq "-v") {
+ shift @ARGV;
+ $i4jversion = shift @ARGV;
+ die("-v i4jversion must be an integer [probably 7 or 8]") unless $i4jversion =~ m/^\d+$/;
+}
+
+my $fileformats = $ARGV[0];
+$fileformats = "../../src/jalview/io/FileFormat.java" unless $fileformats;
+
+# default mimetype will be text/x-$shortname
+# TODO: find an actual extension for mat, see JAL-Xxxxx for outstanding issues too
+# TODO: look up standard mime type used for BLASTfmt matrices, etc
+my $mimetypes = {
+ rnaml => "application/rnaml+xml",
+ biojson => "application/x-jalview-biojson+json",
+ jnet => "application/x-jalview-jnet+text",
+ features => "application/x-jalview-features+text",
+ scorematrix => "application/x-jalview-scorematrix+text",
+ pdb => "chemical/x-pdb",
+ mmcif => "chemical/x-cif",
+ mmcif2 => "chemical/x-mmcif",
+ jalview => "application/x-jalview+xml+zip",
+ jvl => "application/x-jalview-jvl+text",
+ annotations => "application/x-jalview-annotations+text",
+};
+
+my @dontaddshortname = qw(features json);
+my @dontaddextension = qw(html xml json jar mfa fastq);
+my $add_associations = {
+ biojson => {shortname=>"biojson",name=>"BioJSON",extensions=>["biojson"]},
+ gff2 => {shortname=>"gff2",name=>"Generic Features Format v2",extensions=>["gff2"]},
+ gff3 => {shortname=>"gff3",name=>"Generic Features Format v3",extensions=>["gff3"]},
+ features => {shortname=>"features",name=>"Jalview Features",extensions=>["features","jvfeatures"]},
+ annotations => {shortname=>"annotations",name=>"Jalview Annotations",extensions=>["annotations","jvannotations"]},
+ mmcif => {shortname=>"mmcif",name=>"CIF",extensions=>["cif"]},
+ mmcif2 => {shortname=>"mmcif2",name=>"mmCIF",extensions=>["mcif","mmcif"]},
+ jvl => {shortname=>"jvl",name=>"Jalview Launch",extensions=>["jvl"],iconfile=>"jvl_file"},
+ jnet => {shortname=>"jnet",name=>"JnetFile",extensions=>["concise","jnet"]},
+ scorematrix => {shortname=>"scorematrix",name=>"Substitution Matrix",extensions=>["mat"]},
+};
+my $add_extensions = {
+ blc => ["blc"],
+};
+my @put_first = qw(jalview jvl);
+my @owner = @put_first;
+
+my @non_primary = qw(mmcif mmcif2 pdb);
+
+my $v = ($i4jversion >= 8)?$i4jversion:"";
+my $i4jtemplatefile = "file_associations_template-install4j${v}.xml";
+my $i4jtemplate;
+my $mactemplatefile = "file_associations_template-Info_plist.xml";
+my $mactemplate;
+
+open(MT,"<$mactemplatefile") or die("Could not open '$mactemplatefile' for reading");
+while(<MT>){
+ $mactemplate .= $_;
+}
+close(MT);
+open(IT,"<$i4jtemplatefile") or die("Could not open '$i4jtemplatefile' for reading");
+while(<IT>){
+ $i4jtemplate .= $_;
+}
+close(IT);
+my $macauto;
+my $i4jauto;
+
+my $macautofile = $mactemplatefile;
+$macautofile =~ s/template/auto$1/;
+
+my $i4jautofile = $i4jtemplatefile;
+$i4jautofile =~ s/template/auto$1/;
+
+for my $key (sort keys %$add_associations) {
+ my $a = $add_associations->{$key};
+ warn("Known file association for $a->{shortname} (".join(",",@{$a->{extensions}}).")\n");
+}
+
+open(MA,">$macautofile") or die ("Could not open '$macautofile' for writing");
+print MA "<key>CFBundleDocumentTypes</key>\n<array>\n\n";
+
+open(IA,">$i4jautofile") or die ("Could not open '$i4jautofile' for writing");
+
+open(IN, "<$fileformats") or die ("Could not open '$fileformats' for reading");
+my $id = 10000;
+my $file_associations = {};
+while(my $line = <IN>) {
+ $line =~ s/\s+/ /g;
+ $line =~ s/(^ | $)//g;
+ if ($line =~ m/^(\w+) ?\( ?"([^"]*)" ?, ?"([^"]*)" ?, ?(true|false) ?, ?(true|false) ?\)$/i) {
+ my $shortname = lc($1);
+ next if (grep($_ eq $shortname, @dontaddshortname));
+ my $name = $2;
+ my $extensions = $3;
+ $extensions =~ s/\s+//g;
+ my @possextensions = map(lc($_),split(m/,/,$extensions));
+ my @extensions;
+ my $addext = $add_extensions->{$shortname};
+ if (ref($addext) eq "ARRAY") {
+ push(@possextensions, @$addext);
+ }
+ for my $possext (@possextensions) {
+ next if grep($_ eq $possext, @extensions);
+ next if grep($_ eq $possext, @dontaddextension);
+ push(@extensions,$possext);
+ }
+ next unless scalar(@extensions);
+ $file_associations->{$shortname} = {
+ shortname => $shortname,
+ name => $name,
+ extensions => \@extensions
+ };
+ warn("Reading file association for $shortname (".join(",",@extensions).")\n");
+ }
+}
+close(IN);
+
+my %all_associations = (%$file_associations, %$add_associations);
+
+my @ordered = (@put_first, @non_primary);
+for my $key (sort keys %all_associations) {
+ next if grep($_ eq $key, @ordered);
+ push(@ordered, $key);
+}
+my $num = $#ordered + 1;
+
+warn("--\n");
+
+my $i4jcount = 0;
+for my $shortname (@ordered) {
+ my $a = $all_associations{$shortname};
+ next if (ref($a) ne "HASH");
+
+ my $name = $a->{name};
+ my $extensions = $a->{extensions};
+ my $mimetype = $mimetypes->{$shortname};
+ $mimetype = "application/x-$shortname+txt" unless $mimetype;
+
+ my $iconfile = $a->{iconfile};
+ $iconfile = "Jalview-File" unless $iconfile;
+
+ my $owner = grep($_ eq $shortname, @owner);
+ my $primary = (! grep($_ eq $shortname, @non_primary));
+ my $primarystring = $primary?"true":"false";
+ #my $role = $owner?"Owner":($primary?"Editor":"Viewer");
+ my $role = $primary?"Editor":"Viewer";
+ my $rank = $owner?"Owner":($primary?"Default":"Alternate");
+
+ my @extensions = @$extensions;
+
+ my $xname = xml_escape($name);
+ my $xmimetype = xml_escape($mimetype);
+ my $xshortname = xml_escape($shortname);
+ my $xiconfile = xml_escape($iconfile);
+ my $xrole = xml_escape($role);
+ my $xROLE = xml_escape(uc($role));
+ my $xrank = xml_escape($rank);
+ my $xprimarystring = xml_escape($primarystring);
+
+ my $macentry = $mactemplate;
+ $macentry =~ s/\$\$NAME\$\$/$xname/g;
+ $macentry =~ s/\$\$SHORTNAME\$\$/$xshortname/g;
+ $macentry =~ s/\$\$MIMETYPE\$\$/$xmimetype/g;
+ $macentry =~ s/\$\$ICONFILE\$\$/$xiconfile/g;
+ $macentry =~ s/\$\$ROLE\$\$/$xrole/g;
+ $macentry =~ s/\$\$RANK\$\$/$xrank/g;
+ $macentry =~ s/\$\$PRIMARY\$\$/$xprimarystring/g;
+ while ($macentry =~ m/\$\$([^\$]*)EXTENSIONS([^\$]*)\$\$/) {
+ my $pre = $1;
+ my $post = $2;
+ my $macextensions;
+ for my $ext (@extensions) {
+ my $xext = xml_escape($ext);
+ $macextensions .= $pre.$xext.$post;
+ }
+ $macentry =~ s/\$\$${pre}EXTENSIONS${post}\$\$/$macextensions/g;
+ }
+ print MA $macentry;
+
+ my $i4jentry = $i4jtemplate;
+ $i4jentry =~ s/\$\$NAME\$\$/$xname/g;
+ $i4jentry =~ s/\$\$SHORTNAME\$\$/$xshortname/g;
+ $i4jentry =~ s/\$\$MIMETYPE\$\$/$xmimetype/g;
+ $i4jentry =~ s/\$\$ICONFILE\$\$/$xiconfile/g;
+ $i4jentry =~ s/\$\$PRIMARY\$\$/$xprimarystring/g;
+ $i4jentry =~ s/\$\$MACASSOCIATIONROLE\$\$/$xROLE/g;
+
+ my $ext = join(",",sort(@extensions));
+ my $xdisplayext = xml_escape(join(", ", map(".$_",sort(@extensions))));
+ my $progresspercent = int(($i4jcount/$num)*100);
+ $progresspercent = 100 if $progresspercent > 100;
+ $i4jcount++;
+ my $xext = xml_escape($ext);
+ my $addunixextension = "true";
+
+ $i4jentry =~ s/\$\$ADDUNIXEXTENSION\$\$/$addunixextension/g;
+ $i4jentry =~ s/\$\$EXTENSION\$\$/$xext/g;
+ $i4jentry =~ s/\$\$DISPLAYEXTENSION\$\$/$xdisplayext/g;
+ $i4jentry =~ s/\$\$PROGRESSPERCENT\$\$/$progresspercent/g;
+ $i4jentry =~ s/\$\$ID\$\$/$id/g;
+ $id++;
+ $i4jentry =~ s/\$\$ID1\$\$/$id/g;
+ $id++;
+ $i4jentry =~ s/\$\$ID2\$\$/$id/g;
+ $id++;
+
+ print IA $i4jentry;
+
+ delete $all_associations{$shortname};
+ warn("Writing entry for $name (".join(",",@$extensions).": $mimetype)\n");
+}
+
+close(IA);
+print MA "</array>\n";
+close(MA);
+
+sub xml_escape {
+ my $x = shift;
+ # stolen from Pod::Simple::XMLOutStream in base distro
+ $x =~ s/([^-\n\t !\#\$\%\(\)\*\+,\.\~\/\:\;=\?\@\[\\\]\^_\`\{\|\}a-zA-Z0-9])/'&#'.(ord($1)).';'/eg;
+ return $x;
+}
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Owner</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview+xml+zip</string>
<string>jvl_file.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Owner</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-jvl+text</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
+<key>LSHandlerRank</key>
+<string>Alternate</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>chemical/x-cif</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
+<key>LSHandlerRank</key>
+<string>Alternate</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>chemical/x-mmcif</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
+<key>LSHandlerRank</key>
+<string>Alternate</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>chemical/x-pdb</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-amsa+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-annotations+text</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-biojson+json</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-blc+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-clustal+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-embl+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-fasta+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-features+text</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-genbank+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-gff2+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-gff3+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-jnet+text</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-msf+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-pfam+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-phylip+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-pileup+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-pir+txt</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/rnaml+xml</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-jalview-scorematrix+text</string>
<string>Jalview-File.icns</string>
<key>CFBundleTypeRole</key>
<string>Editor</string>
+<key>LSHandlerRank</key>
+<string>Default</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-stockholm+txt</string>
--- /dev/null
+<!-- Jalview (.jvp) BEGIN -->
+ <action name="Jalview (.jvp) message" id="10000" customizedId="Jalview-jvp-10000-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Jalview (.jvp)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview (.jvp) progress bar 0" id="10001" customizedId="Jalview-jvp-10001-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="0" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview (.jvp) file association" id="10002" customizedId="Jalview-jvp-10002-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .jvp file association">
+ <serializedBean>
+ <property name="description" type="string">Jalview File</property>
+ <property name="extension" type="string">jvp</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview+xml+zip</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Jalview Launch (.jvl) BEGIN -->
+ <action name="Jalview Launch (.jvl) message" id="10003" customizedId="Jalview Launch-jvl-10003-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Jalview Launch (.jvl)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Launch (.jvl) progress bar 4" id="10004" customizedId="Jalview Launch-jvl-10004-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="4" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Launch (.jvl) file association" id="10005" customizedId="Jalview Launch-jvl-10005-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .jvl file association">
+ <serializedBean>
+ <property name="description" type="string">Jalview Launch File</property>
+ <property name="extension" type="string">jvl</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>jvl_file.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>jvl_file.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-jvl+text</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>jvl_file.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- CIF (.cif) BEGIN -->
+ <action name="CIF (.cif) message" id="10006" customizedId="CIF-cif-10006-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">CIF (.cif)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="CIF (.cif) progress bar 8" id="10007" customizedId="CIF-cif-10007-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="8" />
+ </serializedBean>
+ </action>
+
+ <action name="CIF (.cif) file association" id="10008" customizedId="CIF-cif-10008-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .cif file association">
+ <serializedBean>
+ <property name="description" type="string">CIF File</property>
+ <property name="extension" type="string">cif</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="VIEWER" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="false" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">chemical/x-cif</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- mmCIF (.mcif, .mmcif) BEGIN -->
+ <action name="mmCIF (.mcif, .mmcif) message" id="10009" customizedId="mmCIF-mcif,mmcif-10009-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">mmCIF (.mcif, .mmcif)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="mmCIF (.mcif, .mmcif) progress bar 12" id="10010" customizedId="mmCIF-mcif,mmcif-10010-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="12" />
+ </serializedBean>
+ </action>
+
+ <action name="mmCIF (.mcif, .mmcif) file association" id="10011" customizedId="mmCIF-mcif,mmcif-10011-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .mcif,mmcif file association">
+ <serializedBean>
+ <property name="description" type="string">mmCIF File</property>
+ <property name="extension" type="string">mcif,mmcif</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="VIEWER" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="false" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">chemical/x-mmcif</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- PDB (.ent, .pdb) BEGIN -->
+ <action name="PDB (.ent, .pdb) message" id="10012" customizedId="PDB-ent,pdb-10012-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">PDB (.ent, .pdb)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="PDB (.ent, .pdb) progress bar 16" id="10013" customizedId="PDB-ent,pdb-10013-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="16" />
+ </serializedBean>
+ </action>
+
+ <action name="PDB (.ent, .pdb) file association" id="10014" customizedId="PDB-ent,pdb-10014-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .ent,pdb file association">
+ <serializedBean>
+ <property name="description" type="string">PDB File</property>
+ <property name="extension" type="string">ent,pdb</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="VIEWER" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="false" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">chemical/x-pdb</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- AMSA (.amsa) BEGIN -->
+ <action name="AMSA (.amsa) message" id="10015" customizedId="AMSA-amsa-10015-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">AMSA (.amsa)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="AMSA (.amsa) progress bar 20" id="10016" customizedId="AMSA-amsa-10016-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="20" />
+ </serializedBean>
+ </action>
+
+ <action name="AMSA (.amsa) file association" id="10017" customizedId="AMSA-amsa-10017-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .amsa file association">
+ <serializedBean>
+ <property name="description" type="string">AMSA File</property>
+ <property name="extension" type="string">amsa</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-amsa+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Jalview Annotations (.annotations, .jvannotations) BEGIN -->
+ <action name="Jalview Annotations (.annotations, .jvannotations) message" id="10018" customizedId="Jalview Annotations-annotations,jvannotations-10018-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Jalview Annotations (.annotations, .jvannotations)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Annotations (.annotations, .jvannotations) progress bar 24" id="10019" customizedId="Jalview Annotations-annotations,jvannotations-10019-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="24" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Annotations (.annotations, .jvannotations) file association" id="10020" customizedId="Jalview Annotations-annotations,jvannotations-10020-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .annotations,jvannotations file association">
+ <serializedBean>
+ <property name="description" type="string">Jalview Annotations File</property>
+ <property name="extension" type="string">annotations,jvannotations</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-annotations+text</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- BioJSON (.biojson) BEGIN -->
+ <action name="BioJSON (.biojson) message" id="10021" customizedId="BioJSON-biojson-10021-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">BioJSON (.biojson)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="BioJSON (.biojson) progress bar 28" id="10022" customizedId="BioJSON-biojson-10022-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="28" />
+ </serializedBean>
+ </action>
+
+ <action name="BioJSON (.biojson) file association" id="10023" customizedId="BioJSON-biojson-10023-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .biojson file association">
+ <serializedBean>
+ <property name="description" type="string">BioJSON File</property>
+ <property name="extension" type="string">biojson</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-biojson+json</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- BLC (.blc) BEGIN -->
+ <action name="BLC (.blc) message" id="10024" customizedId="BLC-blc-10024-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">BLC (.blc)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="BLC (.blc) progress bar 32" id="10025" customizedId="BLC-blc-10025-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="32" />
+ </serializedBean>
+ </action>
+
+ <action name="BLC (.blc) file association" id="10026" customizedId="BLC-blc-10026-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .blc file association">
+ <serializedBean>
+ <property name="description" type="string">BLC File</property>
+ <property name="extension" type="string">blc</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-blc+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Clustal (.aln) BEGIN -->
+ <action name="Clustal (.aln) message" id="10027" customizedId="Clustal-aln-10027-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Clustal (.aln)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Clustal (.aln) progress bar 36" id="10028" customizedId="Clustal-aln-10028-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="36" />
+ </serializedBean>
+ </action>
+
+ <action name="Clustal (.aln) file association" id="10029" customizedId="Clustal-aln-10029-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .aln file association">
+ <serializedBean>
+ <property name="description" type="string">Clustal File</property>
+ <property name="extension" type="string">aln</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-clustal+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- ENA Flatfile (.txt) BEGIN -->
+ <action name="ENA Flatfile (.txt) message" id="10030" customizedId="ENA Flatfile-txt-10030-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">ENA Flatfile (.txt)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="ENA Flatfile (.txt) progress bar 40" id="10031" customizedId="ENA Flatfile-txt-10031-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="40" />
+ </serializedBean>
+ </action>
+
+ <action name="ENA Flatfile (.txt) file association" id="10032" customizedId="ENA Flatfile-txt-10032-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .txt file association">
+ <serializedBean>
+ <property name="description" type="string">ENA Flatfile File</property>
+ <property name="extension" type="string">txt</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-embl+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Fasta (.fa, .fasta) BEGIN -->
+ <action name="Fasta (.fa, .fasta) message" id="10033" customizedId="Fasta-fa,fasta-10033-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Fasta (.fa, .fasta)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Fasta (.fa, .fasta) progress bar 44" id="10034" customizedId="Fasta-fa,fasta-10034-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="44" />
+ </serializedBean>
+ </action>
+
+ <action name="Fasta (.fa, .fasta) file association" id="10035" customizedId="Fasta-fa,fasta-10035-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .fa,fasta file association">
+ <serializedBean>
+ <property name="description" type="string">Fasta File</property>
+ <property name="extension" type="string">fa,fasta</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-fasta+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Jalview Features (.features, .jvfeatures) BEGIN -->
+ <action name="Jalview Features (.features, .jvfeatures) message" id="10036" customizedId="Jalview Features-features,jvfeatures-10036-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Jalview Features (.features, .jvfeatures)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Features (.features, .jvfeatures) progress bar 48" id="10037" customizedId="Jalview Features-features,jvfeatures-10037-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="48" />
+ </serializedBean>
+ </action>
+
+ <action name="Jalview Features (.features, .jvfeatures) file association" id="10038" customizedId="Jalview Features-features,jvfeatures-10038-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .features,jvfeatures file association">
+ <serializedBean>
+ <property name="description" type="string">Jalview Features File</property>
+ <property name="extension" type="string">features,jvfeatures</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-features+text</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- GenBank Flatfile (.gb, .gbk) BEGIN -->
+ <action name="GenBank Flatfile (.gb, .gbk) message" id="10039" customizedId="GenBank Flatfile-gb,gbk-10039-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">GenBank Flatfile (.gb, .gbk)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="GenBank Flatfile (.gb, .gbk) progress bar 52" id="10040" customizedId="GenBank Flatfile-gb,gbk-10040-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="52" />
+ </serializedBean>
+ </action>
+
+ <action name="GenBank Flatfile (.gb, .gbk) file association" id="10041" customizedId="GenBank Flatfile-gb,gbk-10041-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .gb,gbk file association">
+ <serializedBean>
+ <property name="description" type="string">GenBank Flatfile File</property>
+ <property name="extension" type="string">gb,gbk</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-genbank+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Generic Features Format v2 (.gff2) BEGIN -->
+ <action name="Generic Features Format v2 (.gff2) message" id="10042" customizedId="Generic Features Format v2-gff2-10042-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Generic Features Format v2 (.gff2)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Generic Features Format v2 (.gff2) progress bar 56" id="10043" customizedId="Generic Features Format v2-gff2-10043-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="56" />
+ </serializedBean>
+ </action>
+
+ <action name="Generic Features Format v2 (.gff2) file association" id="10044" customizedId="Generic Features Format v2-gff2-10044-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .gff2 file association">
+ <serializedBean>
+ <property name="description" type="string">Generic Features Format v2 File</property>
+ <property name="extension" type="string">gff2</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-gff2+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Generic Features Format v3 (.gff3) BEGIN -->
+ <action name="Generic Features Format v3 (.gff3) message" id="10045" customizedId="Generic Features Format v3-gff3-10045-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Generic Features Format v3 (.gff3)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Generic Features Format v3 (.gff3) progress bar 60" id="10046" customizedId="Generic Features Format v3-gff3-10046-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="60" />
+ </serializedBean>
+ </action>
+
+ <action name="Generic Features Format v3 (.gff3) file association" id="10047" customizedId="Generic Features Format v3-gff3-10047-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .gff3 file association">
+ <serializedBean>
+ <property name="description" type="string">Generic Features Format v3 File</property>
+ <property name="extension" type="string">gff3</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-gff3+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- JnetFile (.concise, .jnet) BEGIN -->
+ <action name="JnetFile (.concise, .jnet) message" id="10048" customizedId="JnetFile-concise,jnet-10048-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">JnetFile (.concise, .jnet)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="JnetFile (.concise, .jnet) progress bar 64" id="10049" customizedId="JnetFile-concise,jnet-10049-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="64" />
+ </serializedBean>
+ </action>
+
+ <action name="JnetFile (.concise, .jnet) file association" id="10050" customizedId="JnetFile-concise,jnet-10050-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .concise,jnet file association">
+ <serializedBean>
+ <property name="description" type="string">JnetFile File</property>
+ <property name="extension" type="string">concise,jnet</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-jnet+text</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- MSF (.msf) BEGIN -->
+ <action name="MSF (.msf) message" id="10051" customizedId="MSF-msf-10051-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">MSF (.msf)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="MSF (.msf) progress bar 68" id="10052" customizedId="MSF-msf-10052-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="68" />
+ </serializedBean>
+ </action>
+
+ <action name="MSF (.msf) file association" id="10053" customizedId="MSF-msf-10053-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .msf file association">
+ <serializedBean>
+ <property name="description" type="string">MSF File</property>
+ <property name="extension" type="string">msf</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-msf+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- PFAM (.pfam) BEGIN -->
+ <action name="PFAM (.pfam) message" id="10054" customizedId="PFAM-pfam-10054-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">PFAM (.pfam)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="PFAM (.pfam) progress bar 72" id="10055" customizedId="PFAM-pfam-10055-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="72" />
+ </serializedBean>
+ </action>
+
+ <action name="PFAM (.pfam) file association" id="10056" customizedId="PFAM-pfam-10056-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .pfam file association">
+ <serializedBean>
+ <property name="description" type="string">PFAM File</property>
+ <property name="extension" type="string">pfam</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-pfam+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- PHYLIP (.phy) BEGIN -->
+ <action name="PHYLIP (.phy) message" id="10057" customizedId="PHYLIP-phy-10057-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">PHYLIP (.phy)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="PHYLIP (.phy) progress bar 76" id="10058" customizedId="PHYLIP-phy-10058-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="76" />
+ </serializedBean>
+ </action>
+
+ <action name="PHYLIP (.phy) file association" id="10059" customizedId="PHYLIP-phy-10059-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .phy file association">
+ <serializedBean>
+ <property name="description" type="string">PHYLIP File</property>
+ <property name="extension" type="string">phy</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-phylip+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- PileUp (.pileup) BEGIN -->
+ <action name="PileUp (.pileup) message" id="10060" customizedId="PileUp-pileup-10060-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">PileUp (.pileup)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="PileUp (.pileup) progress bar 80" id="10061" customizedId="PileUp-pileup-10061-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="80" />
+ </serializedBean>
+ </action>
+
+ <action name="PileUp (.pileup) file association" id="10062" customizedId="PileUp-pileup-10062-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .pileup file association">
+ <serializedBean>
+ <property name="description" type="string">PileUp File</property>
+ <property name="extension" type="string">pileup</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-pileup+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- PIR (.pir) BEGIN -->
+ <action name="PIR (.pir) message" id="10063" customizedId="PIR-pir-10063-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">PIR (.pir)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="PIR (.pir) progress bar 84" id="10064" customizedId="PIR-pir-10064-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="84" />
+ </serializedBean>
+ </action>
+
+ <action name="PIR (.pir) file association" id="10065" customizedId="PIR-pir-10065-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .pir file association">
+ <serializedBean>
+ <property name="description" type="string">PIR File</property>
+ <property name="extension" type="string">pir</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-pir+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- RNAML (.rnaml) BEGIN -->
+ <action name="RNAML (.rnaml) message" id="10066" customizedId="RNAML-rnaml-10066-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">RNAML (.rnaml)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="RNAML (.rnaml) progress bar 88" id="10067" customizedId="RNAML-rnaml-10067-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="88" />
+ </serializedBean>
+ </action>
+
+ <action name="RNAML (.rnaml) file association" id="10068" customizedId="RNAML-rnaml-10068-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .rnaml file association">
+ <serializedBean>
+ <property name="description" type="string">RNAML File</property>
+ <property name="extension" type="string">rnaml</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/rnaml+xml</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Substitution Matrix (.mat) BEGIN -->
+ <action name="Substitution Matrix (.mat) message" id="10069" customizedId="Substitution Matrix-mat-10069-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Substitution Matrix (.mat)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Substitution Matrix (.mat) progress bar 92" id="10070" customizedId="Substitution Matrix-mat-10070-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="92" />
+ </serializedBean>
+ </action>
+
+ <action name="Substitution Matrix (.mat) file association" id="10071" customizedId="Substitution Matrix-mat-10071-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .mat file association">
+ <serializedBean>
+ <property name="description" type="string">Substitution Matrix File</property>
+ <property name="extension" type="string">mat</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-jalview-scorematrix+text</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
+<!-- Stockholm (.stk, .sto) BEGIN -->
+ <action name="Stockholm (.stk, .sto) message" id="10072" customizedId="Stockholm-stk,sto-10072-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">Stockholm (.stk, .sto)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="Stockholm (.stk, .sto) progress bar 96" id="10073" customizedId="Stockholm-stk,sto-10073-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="96" />
+ </serializedBean>
+ </action>
+
+ <action name="Stockholm (.stk, .sto) file association" id="10074" customizedId="Stockholm-stk,sto-10074-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .stk,sto file association">
+ <serializedBean>
+ <property name="description" type="string">Stockholm File</property>
+ <property name="extension" type="string">stk,sto</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="EDITOR" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="true" />
+ <property name="unix" type="boolean" value="true" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">application/x-stockholm+txt</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>Jalview-File.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
<string>$$ICONFILE$$.icns</string>
<key>CFBundleTypeRole</key>
<string>$$ROLE$$</string>
+<key>LSHandlerRank</key>
+<string>$$RANK$$</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>$$MIMETYPE$$</string>
--- /dev/null
+<!-- $$NAME$$ ($$DISPLAYEXTENSION$$) BEGIN -->
+ <action name="$$NAME$$ ($$DISPLAYEXTENSION$$) message" id="$$ID$$" customizedId="$$NAME$$-$$EXTENSION$$-$$ID$$-message" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="detailMessage" type="string">$$NAME$$ ($$DISPLAYEXTENSION$$)</property>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+
+ <action name="$$NAME$$ ($$DISPLAYEXTENSION$$) progress bar $$PROGRESSPERCENT$$" id="$$ID1$$" customizedId="$$NAME$$-$$EXTENSION$$-$$ID1$$-progressbar" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="$$PROGRESSPERCENT$$" />
+ </serializedBean>
+ </action>
+
+ <action name="$$NAME$$ ($$DISPLAYEXTENSION$$) file association" id="$$ID2$$" customizedId="$$NAME$$-$$EXTENSION$$-$$ID2$$-fileassociation" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make .$$EXTENSION$$ file association">
+ <serializedBean>
+ <property name="description" type="string">$$NAME$$ File</property>
+ <property name="extension" type="string">$$EXTENSION$$</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <!--<property name="macIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>$$ICONFILE$$.icns</string>
+ </object>
+ </property>
+ <property name="macRole" type="enum" class="com.install4j.runtime.beans.actions.desktop.MacAssociationRole" value="$$MACASSOCIATIONROLE$$" />-->
+ <property name="restartFinder" type="boolean" value="true" />
+ <property name="selected" type="boolean" value="$$PRIMARY$$" />
+ <property name="unix" type="boolean" value="$$ADDUNIXEXTENSION$$" />
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>$$ICONFILE$$.png</string>
+ </object>
+ </property>
+ <property name="unixMimeType" type="string">$$MIMETYPE$$</property>
+ <property name="windowsIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>$$ICONFILE$$.ico</string>
+ </object>
+ </property>
+ </serializedBean>
+ </action>
+<!-- END -->
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<install4j version="10.0.3" transformSequenceNumber="10">
+ <directoryPresets config="bin/jalview" />
+ <application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
+ <searchSequence>
+ <directory location="${compiler:JRE_DIR}" />
+ <registry />
+ <envVar name="JAVA_HOME" />
+ </searchSequence>
+ <variables>
+ <variable name="JALVIEW_NAME" value="Jalview" />
+ <variable name="JALVIEW_APPLICATION_NAME" value="Jalview" />
+ <variable name="JALVIEW_DIR" value="../.." />
+ <variable name="BUILD_DIR" value="${compiler:JALVIEW_DIR}/build/install4j" />
+ <variable name="OSX_KEYSTORE" />
+ <variable name="OSX_APPLEID" />
+ <variable name="JSIGN_SH" value="echo" />
+ <variable name="JRE_DIR" value="jre" description="The folder under the app folder that the JRE will be either copied or unpacked into" />
+ <variable name="INSTALLER_TEMPLATE_VERSION" value="DEVELOPMENT_default" />
+ <variable name="JALVIEW_VERSION" value="DEVELOPMENT" />
+ <variable name="JAVA_MIN_VERSION" value="11" />
+ <variable name="JAVA_MAX_VERSION" value="11" />
+ <variable name="JAVA_VERSION" value="11" />
+ <variable name="JAVA_INTEGER_VERSION" value="11" />
+ <variable name="VERSION" value="DEVELOPMENT" />
+ <variable name="MACOS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
+ <variable name="MACOS_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-aarch64/jre" />
+ <variable name="WINDOWS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
+ <variable name="LINUX_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
+ <variable name="LINUX_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-aarch64/jre" />
+ <variable name="MACOS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
+ <variable name="MACOS_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_aarch64.tar.gz" />
+ <variable name="WINDOWS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
+ <variable name="LINUX_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
+ <variable name="LINUX_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_aarch64.tar.gz" />
+ <variable name="COPYRIGHT_MESSAGE" value="..." />
+ <variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
+ <variable name="INTERNAL_ID" value="Jalview" />
+ <variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
+ <variable name="MACOS_DMG_DS_STORE" value="utils/channels/default/images/jalview_default_dmg_DS_Store" />
+ <variable name="MACOS_DMG_BG_IMAGE" value="utils/channels/default/images/jalview_default_dmg_background-72dpi.png" />
+ <variable name="WRAPPER_LINK" value="jalview" />
+ <variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
+ <variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
+ <variable name="INSTALLER_NAME" value="Jalview Installer" />
+ <variable name="INSTALL4J_UTILS_DIR" value="utils/install4j" />
+ <variable name="GETDOWN_CHANNEL_DIR" value="build/website/docroot/getdown/default" />
+ <variable name="GETDOWN_FILES_DIR" value="getdown/files" />
+ <variable name="GETDOWN_RESOURCE_DIR" value="resource" />
+ <variable name="GETDOWN_DIST_DIR" value="dist" />
+ <variable name="GETDOWN_ALT_DIR" value="alt" />
+ <variable name="GETDOWN_INSTALL_DIR" value="install" />
+ <variable name="INFO_PLIST_FILE_ASSOCIATIONS_FILE" value="file_associations_auto-Info_plist.xml" />
+ <variable name="APPLICATION_CATEGORIES" value="Science;Biology;Java;" />
+ <variable name="APPLICATION_FOLDER" value="Jalview" />
+ <variable name="UNIX_APPLICATION_FOLDER" value="jalview" />
+ <variable name="EXECUTABLE_NAME" value="jalview" />
+ <variable name="EXTRA_SCHEME" value="jalviewx" />
+ <variable name="MAC_ICONS_FILE" value="utils/channels/release/images/jalview_logo.icns" />
+ <variable name="WINDOWS_ICONS_FILE" value="utils/channels/release/images/jalview_logo.ico" />
+ <variable name="PNG_ICON_FILE" value="utils/channels/release/images/jalview_logo.png" />
+ <variable name="BACKGROUND" value="utils/channels/release/images/jalview_logo_background_fade-640x480.png" />
+ </variables>
+ <codeSigning macEnabled="true" macPkcs12File="${compiler:OSX_KEYSTORE}" macNotarize="true" appleId="${compiler:OSX_APPLEID}">
+ <macAdditionalBinaries>
+ <entry>*.dylib</entry>
+ <entry>*.so</entry>
+ <entry>*.jnilib</entry>
+ <entry>unpack200</entry>
+ <entry>tnameserv</entry>
+ <entry>servertool</entry>
+ <entry>rmiregistry</entry>
+ <entry>rmid</entry>
+ <entry>policytool</entry>
+ <entry>pack200</entry>
+ <entry>orbd</entry>
+ <entry>keytool</entry>
+ <entry>jjs</entry>
+ <entry>java</entry>
+ <entry>jspawnhelper</entry>
+ <entry>libfreetype.dylib.6</entry>
+ <entry>applet</entry>
+ <entry>jaotc</entry>
+ <entry>jfr</entry>
+ <entry>jrunscript</entry>
+ <entry>libjli.dylib</entry>
+ </macAdditionalBinaries>
+ </codeSigning>
+ </application>
+ <files defaultUninstallMode="2">
+ <filesets>
+ <fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
+ <fileset name="macOS x64 JVM" id="2801" customizedId="MACOS_X64_JVM" />
+ <fileset name="macOS aarch64 JVM" id="2803" customizedId="MACOS_AARCH64_JVM" />
+ </filesets>
+ <roots>
+ <root id="735" fileset="734" />
+ <root id="2802" fileset="2801" />
+ <root id="2804" fileset="2803" />
+ </roots>
+ <mountPoints>
+ <mountPoint id="736" root="735" />
+ <mountPoint id="2805" root="2802" />
+ <mountPoint id="2806" root="2804" />
+ </mountPoints>
+ <entries>
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
+ <exclude>
+ <entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
+ </exclude>
+ </dirEntry>
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
+ <dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
+ <dirEntry mountPoint="2805" file="${compiler:MACOS_X64_JAVA_VM_DIR}" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
+ <dirEntry mountPoint="2806" file="${compiler:MACOS_AARCH64_JAVA_VM_DIR}" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
+ </entries>
+ <components>
+ <component name="jalview_getdown" id="1031">
+ <include>
+ <entry filesetId="734" />
+ </include>
+ </component>
+ </components>
+ </files>
+ <launchers>
+ <launcher name="Jalview Launcher" id="737" customizedId="JALVIEW" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
+ <executable name="${compiler:EXECUTABLE_NAME}" iconSet="true" iconFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}" redirectStdout="true" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" checkConsoleParameter="true">
+ <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
+ </executable>
+ <splashScreen width="640" height="480" bitmapFile="${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}" textOverlay="true">
+ <text>
+ <statusLine x="85" y="81" text="${compiler:sys.shortName}" fontSize="18" />
+ <versionLine x="85" y="109" text="version ${compiler:sys.version}" />
+ </text>
+ </splashScreen>
+ <java mainClass="com.threerings.getdown.launcher.GetdownApp" vmParameters="-Dinstaller_template_version=${compiler:INSTALLER_TEMPLATE_VERSION}" arguments=""${launcher:sys.launcherDirectory}" jalview">
+ <classPath>
+ <archive location="getdown-launcher.jar" />
+ <archive location="${compiler:GETDOWN_INSTALL_DIR}/getdown-launcher.jar" failOnError="false" />
+ </classPath>
+ <nativeLibraryDirectories>
+ <directory name="${compiler:JRE_DIR}/bin" />
+ <directory name="${compiler:GETDOWN_DIST_DIR}" />
+ </nativeLibraryDirectories>
+ </java>
+ <infoPlist>${compiler:file("${compiler:INFO_PLIST_FILE_ASSOCIATIONS_FILE}")}</infoPlist>
+ <iconImageFiles>
+ <file path="${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}" />
+ </iconImageFiles>
+ <macStaticAssociations>
+ <urlHandler scheme="jalview" />
+ <urlHandler scheme="jalviews" />
+ <urlHandler scheme="${compiler:EXTRA_SCHEME}" />
+ </macStaticAssociations>
+ </launcher>
+ </launchers>
+ <installerGui autoUpdateDescriptorUrl="https://www.jalview.org/install4j/updates.xml">
+ <applications>
+ <application id="installer" beanClass="com.install4j.runtime.beans.applications.InstallerApplication" styleId="35" customIcnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customIcoFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}">
+ <serializedBean>
+ <property name="useCustomIcon" type="boolean" value="true" />
+ </serializedBean>
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="146" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ <styleOverride name="Jalview" enabled="true">
+ <formComponent name="Watermark" id="352" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="Jalview" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="enabledTitleText" type="boolean" value="false" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>labelText</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </styleOverride>
+ </styleOverrides>
+ <startup>
+ <screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="22" beanClass="com.install4j.runtime.beans.actions.misc.RequestPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="obtainIfAdminWin" type="boolean" value="false" />
+ </serializedBean>
+ </action>
+ <action name="Set unixUserBinDir (Linux or Unix)" id="2738" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String userHome = (String)context.getVariable("sys.userHome");
+
+ArrayList<String> tryPaths = new ArrayList<> ();
+tryPaths.add(userHome + File.separator + "bin");
+tryPaths.add(userHome + File.separator + ".local" + File.separator + "bin");
+tryPaths.add(userHome + File.separator + "local" + File.separator + "bin");
+tryPaths.add(userHome + File.separator + "opt" + File.separator + "bin");
+
+if (Util.isMacOS()) { // && root permission?
+ tryPaths.add(File.separator + "usr" + File.separator + "local" + File.separator + "bin");
+}
+
+for (int i = 0; i < tryPaths.size(); i++) {
+ String tryPath = tryPaths.get(i);
+ File unixUserBinDir = new File(tryPath);
+ if (unixUserBinDir.exists()) {
+ return tryPath;
+ }
+}
+
+return null;
+</property>
+ </object>
+ </property>
+ <property name="variableName" type="string">unixUserBinDir</property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
+ </action>
+ <action name="Set macWrapperLinkLocation (macOS)" id="2745" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String javaHome = System.getProperty("java.home");
+String appName = ((String)context.getCompilerVariable("JALVIEW_APPLICATION_NAME")) + ".app";
+int i = javaHome.indexOf(appName);
+String wrapperLink = null;
+if (i > -1) {
+ wrapperLink = javaHome.substring(0, i) + appName + File.separator + "Contents" + File.separator + "MacOS" + File.separator + ((String)context.getCompilerVariable("WRAPPER_LINK"));
+}
+return wrapperLink;
+</property>
+ </object>
+ </property>
+ <property name="variableName" type="string">macWrapperLinkLocation</property>
+ </serializedBean>
+ <condition>Util.isMacOS()</condition>
+ </action>
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="2" beanClass="com.install4j.runtime.beans.screens.WelcomeScreen" rollbackBarrierExitCode="0">
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="145" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>25</int>
+ <int>143</int>
+ <int>220</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>0</int>
+ <int>74</int>
+ <int>151</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ </styleOverrides>
+ <actions>
+ <action id="7" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+ <serializedBean>
+ <property name="excludedVariables" type="array" elementType="string" length="1">
+ <element index="0">sys.installationDir</element>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="3" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${form:welcomeMessage}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="4" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+ <serializedBean>
+ <property name="consoleScript">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String message = context.getMessage("ConsoleWelcomeLabel", context.getApplicationName());
+return console.askOkCancel(message, true);
+</property>
+ </object>
+ </property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="5" beanClass="com.install4j.runtime.beans.formcomponents.UpdateAlertComponent" useExternalParametrization="true" externalParametrizationName="Update Alert" externalParametrizationMode="include">
+ <externalParametrizationPropertyNames>
+ <propertyName>updateCheck</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ <formComponent id="6" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetTop="20">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:ClickNext}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="8" beanClass="com.install4j.runtime.beans.screens.InstallationDirectoryScreen" rollbackBarrierExitCode="0">
+ <condition>!context.getBooleanVariable("sys.confirmedUpdateInstallation")</condition>
+ <actions>
+ <action id="11" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" multiExec="true">
+ <serializedBean>
+ <property name="excludedVariables" type="array" elementType="string" length="1">
+ <element index="0">sys.installationDir</element>
+ </property>
+ </serializedBean>
+ <condition>context.getVariable("sys.responseFile") == null</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="9" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="25">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectDirLabel(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="10" beanClass="com.install4j.runtime.beans.formcomponents.InstallationDirectoryChooserComponent" useExternalParametrization="true" externalParametrizationName="Installation Directory Chooser" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="requestFocus" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>allowSpacesOnUnix</propertyName>
+ <propertyName>checkFreeSpace</propertyName>
+ <propertyName>checkWritable</propertyName>
+ <propertyName>existingDirWarning</propertyName>
+ <propertyName>manualEntryAllowed</propertyName>
+ <propertyName>showFreeDiskSpace</propertyName>
+ <propertyName>showRequiredDiskSpace</propertyName>
+ <propertyName>standardValidation</propertyName>
+ <propertyName>suggestAppDir</propertyName>
+ <propertyName>validateApplicationId</propertyName>
+ <propertyName>validationScript</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="12" beanClass="com.install4j.runtime.beans.screens.ComponentsScreen" enabled="false" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="13" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectComponentsLabel2}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="14" beanClass="com.install4j.runtime.beans.formcomponents.ComponentSelectorComponent" useExternalParametrization="true" externalParametrizationName="Installation Components" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>selectionChangedScript</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="1692" beanClass="com.install4j.runtime.beans.screens.FileAssociationsScreen" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="1693" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:SelectAssociationsLabel}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent id="1694" beanClass="com.install4j.runtime.beans.formcomponents.FileAssociationsComponent" useExternalParametrization="true" externalParametrizationName="File Associations" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="true" />
+ <property name="selectionButtonPosition" type="enum" class="com.install4j.runtime.beans.formcomponents.VerticalDockingPosition" value="TOP" />
+ <property name="showSelectionButtons" type="boolean" value="true" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>showSelectionButtons</propertyName>
+ <propertyName>selectionButtonPosition</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="15" beanClass="com.install4j.runtime.beans.screens.InstallationScreen" rollbackBarrier="true" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="17" beanClass="com.install4j.runtime.beans.actions.InstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" failureStrategy="quit" errorMessage="${i18n:FileCorrupted}" />
+ <action name="Create program group (RELEASE)" id="18" customizedId="PROGRAM_GROUP_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="programGroupEntryConfigs">
+ <add>
+ <object class="com.install4j.runtime.beans.screens.components.ProgramGroupFileConfig">
+ <property name="name" type="string">Examples</property>
+ <property name="target">
+ <object class="java.io.File">
+ <string>examples</string>
+ </object>
+ </property>
+ </object>
+ </add>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action name="Create program group (NON-RELEASE)" id="2730" customizedId="PROGRAM_GROUP_NON_RELEASE" beanClass="com.install4j.runtime.beans.actions.desktop.CreateProgramGroupAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="uninstallerMenuName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action id="19" beanClass="com.install4j.runtime.beans.actions.desktop.RegisterAddRemoveAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="itemName" type="string">${compiler:sys.fullName} ${compiler:sys.version}</property>
+ </serializedBean>
+ </action>
+ <action id="124" beanClass="com.install4j.runtime.beans.actions.control.SetVariableAction" enabled="false" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="script">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string" />
+ </object>
+ </property>
+ <property name="variableName" type="string" />
+ </serializedBean>
+ <condition>true</condition>
+ </action>
+ <action id="134" beanClass="com.install4j.runtime.beans.actions.misc.AddVmOptionsAction" enabled="false" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">121</property>
+ <property name="vmOptions" type="array" elementType="string" length="0" />
+ </serializedBean>
+ </action>
+ <group name="File Associations" id="2251" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action id="2253" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="statusMessage" type="string">Creating file associations...</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="2254" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+ </serializedBean>
+ </action>
+ <group name="File Associations Replacement Group" id="2753" customizedId="EXTENSIONS_REPLACED_BY_GRADLE_PARENT_GROUP" beanClass="com.install4j.runtime.beans.groups.ActionGroup">
+ <beans>
+ <action name="EXTENSIONS_REPLACED_BY_GRADLE" id="1691" customizedId="EXTENSIONS" beanClass="com.install4j.runtime.beans.actions.desktop.CreateFileAssociationAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="description" type="string">This action, identified by its name "EXTENSIONS_REPLACED_BY_GRADLE", will be replaced by gradle with the contents of file 'file_associations_auto_install4j.xml'.</property>
+ <property name="extension" type="string">extensions_to_be_replaced_by_gradle</property>
+ <property name="launcherId" type="string">JALVIEW</property>
+ </serializedBean>
+ </action>
+ </beans>
+ </group>
+ <action id="2542" beanClass="com.install4j.runtime.beans.actions.control.SetMessageAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="statusMessage" type="string">Finished creating file associations</property>
+ <property name="useDetail" type="boolean" value="true" />
+ <property name="useStatus" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="2541" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="100" />
+ </serializedBean>
+ </action>
+ </beans>
+ </group>
+ <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">jalview</property>
+ </serializedBean>
+ </action>
+ <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">jalviews</property>
+ </serializedBean>
+ </action>
+ <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="launcherId" type="string">JALVIEW</property>
+ <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
+ </serializedBean>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="16" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+ <serializedBean>
+ <property name="initialStatusMessage" type="string">${i18n:WizardPreparing}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="20" beanClass="com.install4j.runtime.beans.screens.FinishedScreen" rollbackBarrierExitCode="0" finishScreen="true">
+ <actions>
+ <action id="2012" beanClass="com.install4j.runtime.beans.actions.desktop.CreateStartMenuEntryAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="categories" type="string">${compiler:APPLICATION_CATEGORIES}</property>
+ <property name="entryName" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="icon">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ <property name="programGroupName" type="string">${compiler:JALVIEW_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>!context.getBooleanVariable("sys.programGroupDisabled")</condition>
+ </action>
+ <action id="573" beanClass="com.install4j.runtime.beans.actions.desktop.CreateDesktopLinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make desktop link">
+ <serializedBean>
+ <property name="allUsers" type="boolean" value="false" />
+ <property name="description" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:EXECUTABLE_NAME}</string>
+ </object>
+ </property>
+ <property name="name" type="string">${compiler:JALVIEW_APPLICATION_NAME}</property>
+ <property name="unixIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:PNG_ICON_FILE}</string>
+ </object>
+ </property>
+ <property name="winIconFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("createDesktopLinkAction")</condition>
+ </action>
+ <action id="576" beanClass="com.install4j.runtime.beans.actions.desktop.AddToDockAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="executable">
+ <object class="java.io.File">
+ <string>${compiler:JALVIEW_APPLICATION_NAME}.app</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("addToDockAction")</condition>
+ </action>
+ <action name="Linux/Unix symlink" id="2733" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make symlink to wrapper script">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>Util.isLinux() || Util.isUnixInstaller() || Util.isMacOS()</condition>
+ </action>
+ <action name="Add Jalview bin to the user's path (Windows)" id="2740" beanClass="com.install4j.runtime.beans.actions.misc.ModifyEnvironmentVariableAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not add "${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}" to the Path environment variable">
+ <serializedBean>
+ <property name="type" type="enum" class="com.install4j.runtime.beans.actions.misc.ModifyStringType" value="APPEND" />
+ <property name="value" type="string">${installer:sys.contentDir}\${compiler:WRAPPER_SCRIPT_BIN_DIR}</property>
+ <property name="variableName" type="string">Path</property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("appendToPathAction")</condition>
+ </action>
+ <action name="Create Linux/Unix symbolic link to jalview.sh in user's local bin" id="2739" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:sys.contentDir}/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLinkAction") && ( Util.isLinux() || Util.isUnixInstaller() ) && ( context.getVariable("unixUserBinDir") != null )</condition>
+ </action>
+ <action name="Create macOS symbolic link to jalview in user's local bin" id="2743" beanClass="com.install4j.runtime.beans.actions.files.CreateSymlinkAction" actionElevationType="elevated" rollbackBarrierExitCode="0" errorMessage="Could not make a ${compiler:WRAPPER_LINK} symbolic link in ~/${installer:unixUserBinDir}">
+ <serializedBean>
+ <property name="file">
+ <object class="java.io.File">
+ <string>${installer:macWrapperLinkLocation}</string>
+ </object>
+ </property>
+ <property name="linkFile">
+ <object class="java.io.File">
+ <string>${installer:unixUserBinDir}/${compiler:WRAPPER_LINK}</string>
+ </object>
+ </property>
+ </serializedBean>
+ <condition>context.getBooleanVariable("makeSymbolicLinkAction") && Util.isMacOS() && ( context.getVariable("unixUserBinDir") != null ) && ( context.getVariable("macWrapperLinkLocation") != null )</condition>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="21" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:finishedMessage}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Add a desktop link" id="574" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:CreateDesktopIcon}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">createDesktopLinkAction</property>
+ </serializedBean>
+ <visibilityScript>!Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Add an executable to the dock" id="577" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">addToDockAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Add jalview bin to the user's Path environment variable (Windows)" id="2734" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Add ${compiler:JALVIEW_APPLICATION_NAME}'s bin folder to the Path environment variable</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">appendToPathAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isWindows()</visibilityScript>
+ </formComponent>
+ <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2736" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() && ( context.getVariable("macWrapperLinkLocation") != null ) ) ) && ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ <application id="uninstaller" beanClass="com.install4j.runtime.beans.applications.UninstallerApplication" styleId="35">
+ <serializedBean>
+ <property name="customMacosExecutableName" type="string">${i18n:UninstallerMenuEntry(${compiler:sys.fullName})}</property>
+ <property name="useCustomMacosExecutableName" type="boolean" value="true" />
+ </serializedBean>
+ <styleOverrides>
+ <styleOverride name="Customize banner image" enabled="true">
+ <group id="147" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>192</int>
+ <int>192</int>
+ <int>192</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </styleOverride>
+ </styleOverrides>
+ <startup>
+ <screen id="23" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="33" beanClass="com.install4j.runtime.beans.actions.misc.LoadResponseFileAction" rollbackBarrierExitCode="0" />
+ <action id="34" beanClass="com.install4j.runtime.beans.actions.misc.RequireInstallerPrivilegesAction" actionElevationType="none" rollbackBarrierExitCode="0" />
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="24" beanClass="com.install4j.runtime.beans.screens.UninstallWelcomeScreen" rollbackBarrierExitCode="0">
+ <formComponents>
+ <formComponent id="25" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:welcomeMessage}</property>
+ </serializedBean>
+ <visibilityScript>!context.isConsole()</visibilityScript>
+ </formComponent>
+ <formComponent id="26" beanClass="com.install4j.runtime.beans.formcomponents.ConsoleHandlerFormComponent">
+ <serializedBean>
+ <property name="consoleScript">
+ <object class="com.install4j.api.beans.ScriptProperty">
+ <property name="value" type="string">String message = context.getMessage("ConfirmUninstall", context.getApplicationName());
+return console.askYesNo(message, true);
+</property>
+ </object>
+ </property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="27" beanClass="com.install4j.runtime.beans.screens.UninstallationScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <action id="659" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="progressChangeType" type="enum" class="com.install4j.runtime.beans.actions.control.ProgressChangeType" value="SET_INDETERMINATE" />
+ </serializedBean>
+ </action>
+ <action id="29" beanClass="com.install4j.runtime.beans.actions.UninstallFilesAction" actionElevationType="elevated" rollbackBarrierExitCode="0" />
+ <action id="660" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" enabled="false" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="95" />
+ </serializedBean>
+ </action>
+ <action id="1525" beanClass="com.install4j.runtime.beans.actions.files.DeleteFileAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="files" type="array" class="java.io.File" length="40">
+ <element index="0">
+ <object class="java.io.File">
+ <string>jre</string>
+ </object>
+ </element>
+ <element index="1">
+ <object class="java.io.File">
+ <string>jre.jar</string>
+ </object>
+ </element>
+ <element index="2">
+ <object class="java.io.File">
+ <string>.install4j</string>
+ </object>
+ </element>
+ <element index="3">
+ <object class="java.io.File">
+ <string>getdown-launcher.jar</string>
+ </object>
+ </element>
+ <element index="4">
+ <object class="java.io.File">
+ <string>getdown-launcher-old.jar</string>
+ </object>
+ </element>
+ <element index="5">
+ <object class="java.io.File">
+ <string>getdown-launcher-new.jar</string>
+ </object>
+ </element>
+ <element index="6">
+ <object class="java.io.File">
+ <string>gettingdown.lock</string>
+ </object>
+ </element>
+ <element index="7">
+ <object class="java.io.File">
+ <string>jre.zip</string>
+ </object>
+ </element>
+ <element index="8">
+ <object class="java.io.File">
+ <string>digest.txt</string>
+ </object>
+ </element>
+ <element index="9">
+ <object class="java.io.File">
+ <string>digest2.txt</string>
+ </object>
+ </element>
+ <element index="10">
+ <object class="java.io.File">
+ <string>getdown-launcher.jarv</string>
+ </object>
+ </element>
+ <element index="11">
+ <object class="java.io.File">
+ <string>getdown-launcher-new.jarv</string>
+ </object>
+ </element>
+ <element index="12">
+ <object class="java.io.File">
+ <string>launcher.log</string>
+ </object>
+ </element>
+ <element index="13">
+ <object class="java.io.File">
+ <string>proxy.txt</string>
+ </object>
+ </element>
+ <element index="14">
+ <object class="java.io.File">
+ <string>build_properties</string>
+ </object>
+ </element>
+ <element index="15">
+ <object class="java.io.File">
+ <string>channel_launch*.jvl</string>
+ </object>
+ </element>
+ <element index="16">
+ <object class="java.io.File">
+ <string>jalview*.jvl</string>
+ </object>
+ </element>
+ <element index="17">
+ <object class="java.io.File">
+ <string>*.jarv</string>
+ </object>
+ </element>
+ <element index="18">
+ <object class="java.io.File">
+ <string>*.log</string>
+ </object>
+ </element>
+ <element index="19">
+ <object class="java.io.File">
+ <string>*.txt</string>
+ </object>
+ </element>
+ <element index="20">
+ <object class="java.io.File">
+ <string>*_new</string>
+ </object>
+ </element>
+ <element index="21">
+ <object class="java.io.File">
+ <string>hs_err_*.*</string>
+ </object>
+ </element>
+ <element index="22">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_DIST_DIR}</string>
+ </object>
+ </element>
+ <element index="23">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_ALT_DIR}</string>
+ </object>
+ </element>
+ <element index="24">
+ <object class="java.io.File">
+ <string>${compiler:GETDOWN_RESOURCE_DIR}</string>
+ </object>
+ </element>
+ <element index="25">
+ <object class="java.io.File">
+ <string>META-INF</string>
+ </object>
+ </element>
+ <element index="26">
+ <object class="java.io.File">
+ <string>install</string>
+ </object>
+ </element>
+ <element index="27">
+ <object class="java.io.File">
+ <string>resource</string>
+ </object>
+ </element>
+ <element index="28">
+ <object class="java.io.File">
+ <string>dist</string>
+ </object>
+ </element>
+ <element index="29">
+ <object class="java.io.File">
+ <string>release</string>
+ </object>
+ </element>
+ <element index="30">
+ <object class="java.io.File">
+ <string>alt</string>
+ </object>
+ </element>
+ <element index="31">
+ <object class="java.io.File">
+ <string>dev</string>
+ </object>
+ </element>
+ <element index="32">
+ <object class="java.io.File">
+ <string>build</string>
+ </object>
+ </element>
+ <element index="33">
+ <object class="java.io.File">
+ <string>alt_*</string>
+ </object>
+ </element>
+ <element index="34">
+ <object class="java.io.File">
+ <string>dev_*</string>
+ </object>
+ </element>
+ <element index="35">
+ <object class="java.io.File">
+ <string>build_*</string>
+ </object>
+ </element>
+ <element index="36">
+ <object class="java.io.File">
+ <string>${compiler:WRAPPER_SCRIPT_BIN_DIR}</string>
+ </object>
+ </element>
+ <element index="37">
+ <object class="java.io.File">
+ <string>bin</string>
+ </object>
+ </element>
+ <element index="38">
+ <object class="java.io.File">
+ <string>channel.props</string>
+ </object>
+ </element>
+ <element index="39">
+ <object class="java.io.File">
+ <string>channel.propsv</string>
+ </object>
+ </element>
+ </property>
+ <property name="recursive" type="boolean" value="true" />
+ </serializedBean>
+ </action>
+ <action id="1791" beanClass="com.install4j.runtime.beans.actions.control.SetProgressAction" actionElevationType="none" rollbackBarrierExitCode="0">
+ <serializedBean>
+ <property name="percentValue" type="int" value="100" />
+ </serializedBean>
+ </action>
+ </actions>
+ <formComponents>
+ <formComponent id="28" beanClass="com.install4j.runtime.beans.formcomponents.ProgressComponent">
+ <serializedBean>
+ <property name="initialStatusMessage" type="string">${i18n:UninstallerPreparing}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ <screen id="32" beanClass="com.install4j.runtime.beans.screens.UninstallFailureScreen" rollbackBarrierExitCode="0" finishScreen="true" />
+ <screen id="30" beanClass="com.install4j.runtime.beans.screens.UninstallSuccessScreen" styleId="41" rollbackBarrierExitCode="0" finishScreen="true">
+ <formComponents>
+ <formComponent id="31" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${form:successMessage}</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ <application name="MacOS Setup" id="2746" beanClass="com.install4j.runtime.beans.applications.CustomApplication" fileset="734" macEntitlementsFile="${compiler:JALVIEW_DIR}/utils/osx_signing/entitlements.txt">
+ <serializedBean>
+ <property name="executableDirectory">
+ <object class="java.io.File">
+ <string>.</string>
+ </object>
+ </property>
+ <property name="executableName" type="string">${compiler:WRAPPER_LINK}_setup</property>
+ <property name="windowTitle" type="string">${compiler:sys.fullName}</property>
+ </serializedBean>
+ <startup>
+ <screen id="2747" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
+ <actions>
+ <link id="2749" targetId="22" />
+ <link id="2750" targetId="2738" />
+ <link id="2751" targetId="2745" />
+ </actions>
+ </screen>
+ </startup>
+ <screens>
+ <screen id="2772" beanClass="com.install4j.runtime.beans.screens.FormScreen" rollbackBarrierExitCode="0" backButton="hidden" finishScreen="true">
+ <serializedBean>
+ <property name="title" type="string">Running ${i18n:SetupAppTitle}</property>
+ </serializedBean>
+ <actions>
+ <link id="2778" targetId="576" />
+ <link id="2779" targetId="2743" />
+ </actions>
+ <formComponents>
+ <formComponent id="2773" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent" insetBottom="10">
+ <serializedBean>
+ <property name="labelText" type="string">${i18n:FinishedLabel(${compiler:JALVIEW_APPLICATION_NAME})}</property>
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Add an executable to the dock" id="2775" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">${i18n:AddToDock}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">addToDockAction</property>
+ </serializedBean>
+ <visibilityScript>Util.isMacOS()</visibilityScript>
+ </formComponent>
+ <formComponent name="Make a symbolic link to jalview.sh bash script in the user's local bin (Linux or Unix)" id="2777" beanClass="com.install4j.runtime.beans.formcomponents.CheckboxComponent">
+ <serializedBean>
+ <property name="checkboxText" type="string">Make a ${compiler:WRAPPER_LINK} symbolic link in ${installer:unixUserBinDir}</property>
+ <property name="initiallySelected" type="boolean" value="true" />
+ <property name="variableName" type="string">makeSymbolicLinkAction</property>
+ </serializedBean>
+ <visibilityScript>( Util.isLinux() || Util.isUnixInstaller() || ( Util.isMacOS() && ( context.getVariable("macWrapperLinkLocation") != null ) ) ) && ( context.getVariable("unixUserBinDir") != null )</visibilityScript>
+ </formComponent>
+ <formComponent id="2780" beanClass="com.install4j.runtime.beans.formcomponents.MultilineLabelComponent">
+ <serializedBean>
+ <property name="labelText" type="string">
+${i18n:ClickFinish}
+
+${compiler:JALVIEW_APPLICATION_NAME} will now launch.</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </screen>
+ </screens>
+ </application>
+ </applications>
+ <styles defaultStyleId="35">
+ <style name="Standard" id="35" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <formComponents>
+ <formComponent name="Header" id="36" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">48</property>
+ </serializedBean>
+ </formComponent>
+ <group name="Main" id="37" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup">
+ <serializedBean>
+ <property name="imageEdgeAxisType" type="enum" class="com.install4j.runtime.beans.formcomponents.AxisType" value="HORIZONTAL" />
+ <property name="imageEdgeBackgroundColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ </property>
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:JALVIEW_DIR}/${compiler:BACKGROUND}</string>
+ </object>
+ </property>
+ <property name="imageOverlap" type="boolean" value="true" />
+ </serializedBean>
+ <beans>
+ <formComponent id="38" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetLeft="20" insetBottom="10" insetRight="20" />
+ <formComponent name="Watermark" id="39" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" insetTop="0" insetLeft="5" insetBottom="0" useExternalParametrization="true" externalParametrizationName="${compiler:JALVIEW_APPLICATION_NAME}" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="enabledTitleText" type="boolean" value="false" />
+ </serializedBean>
+ <externalParametrizationPropertyNames>
+ <propertyName>labelText</propertyName>
+ </externalParametrizationPropertyNames>
+ </formComponent>
+ <formComponent name="Footer" id="40" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetTop="0" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">52</property>
+ </serializedBean>
+ </formComponent>
+ </beans>
+ </group>
+ </formComponents>
+ </style>
+ <style name="Banner" id="41" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <formComponents>
+ <group id="42" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize banner image" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageEdgeBackgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>25</int>
+ <int>143</int>
+ <int>220</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>0</int>
+ <int>74</int>
+ <int>151</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="imageEdgeBorder" type="boolean" value="true" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>${compiler:sys.install4jHome}/resource/styles/wizard.png</string>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>5</int>
+ <int>10</int>
+ <int>10</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent id="43" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetTop="0">
+ <serializedBean>
+ <property name="labelFontSizePercent" type="int" value="130" />
+ <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+ <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+ </serializedBean>
+ </formComponent>
+ <formComponent id="44" beanClass="com.install4j.runtime.beans.formcomponents.SeparatorComponent" />
+ <formComponent id="45" beanClass="com.install4j.runtime.beans.styles.ContentComponent" insetTop="10" insetBottom="0" />
+ </beans>
+ <externalParametrizationPropertyNames>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageEdgeBackgroundColor</propertyName>
+ <propertyName>imageFile</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ <formComponent id="46" beanClass="com.install4j.runtime.beans.styles.NestedStyleComponent" insetBottom="0">
+ <serializedBean>
+ <property name="styleId" type="string">52</property>
+ </serializedBean>
+ </formComponent>
+ </formComponents>
+ </style>
+ <group name="Style components" id="47" beanClass="com.install4j.runtime.beans.groups.StyleGroup">
+ <beans>
+ <style name="Standard header" id="48" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="false" />
+ <property name="standalone" type="boolean" value="false" />
+ <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTH" />
+ </serializedBean>
+ <formComponents>
+ <group id="49" beanClass="com.install4j.runtime.beans.groups.VerticalFormComponentGroup" useExternalParametrization="true" externalParametrizationName="Customize title bar" externalParametrizationMode="include">
+ <serializedBean>
+ <property name="backgroundColor">
+ <object class="com.install4j.runtime.beans.LightOrDarkColor">
+ <object class="java.awt.Color">
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ <int>255</int>
+ </object>
+ <object class="java.awt.Color">
+ <int>49</int>
+ <int>52</int>
+ <int>53</int>
+ <int>255</int>
+ </object>
+ </object>
+ </property>
+ <property name="borderSides">
+ <object class="com.install4j.runtime.beans.formcomponents.BorderSides">
+ <property name="bottom" type="boolean" value="true" />
+ </object>
+ </property>
+ <property name="imageAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="NORTHEAST" />
+ <property name="imageEdgeBorderWidth" type="int" value="2" />
+ <property name="imageFile">
+ <object class="com.install4j.api.beans.ExternalFile">
+ <string>icon:${installer:sys.installerApplicationMode}_header.png</string>
+ </object>
+ </property>
+ <property name="imageInsets">
+ <object class="java.awt.Insets">
+ <int>0</int>
+ <int>5</int>
+ <int>1</int>
+ <int>1</int>
+ </object>
+ </property>
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>0</int>
+ <int>20</int>
+ <int>0</int>
+ <int>10</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent name="Title" id="50" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent">
+ <serializedBean>
+ <property name="labelFontStyle" type="enum" class="com.install4j.runtime.beans.formcomponents.FontStyle" value="BOLD" />
+ <property name="labelFontType" type="enum" class="com.install4j.runtime.beans.formcomponents.FontType" value="DERIVED" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Subtitle" id="51" beanClass="com.install4j.runtime.beans.styles.ScreenTitleComponent" insetLeft="8">
+ <serializedBean>
+ <property name="titleType" type="enum" class="com.install4j.runtime.beans.styles.TitleType" value="SUB_TITLE" />
+ </serializedBean>
+ </formComponent>
+ </beans>
+ <externalParametrizationPropertyNames>
+ <propertyName>backgroundColor</propertyName>
+ <propertyName>foregroundColor</propertyName>
+ <propertyName>imageAnchor</propertyName>
+ <propertyName>imageFile</propertyName>
+ <propertyName>imageOverlap</propertyName>
+ </externalParametrizationPropertyNames>
+ </group>
+ </formComponents>
+ </style>
+ <style name="Standard footer" id="52" beanClass="com.install4j.runtime.beans.styles.FormStyle">
+ <serializedBean>
+ <property name="fillVertical" type="boolean" value="false" />
+ <property name="standalone" type="boolean" value="false" />
+ <property name="verticalAnchor" type="enum" class="com.install4j.api.beans.Anchor" value="SOUTH" />
+ </serializedBean>
+ <formComponents>
+ <group id="53" beanClass="com.install4j.runtime.beans.groups.HorizontalFormComponentGroup">
+ <serializedBean>
+ <property name="alignFirstLabel" type="boolean" value="false" />
+ <property name="insets">
+ <object class="java.awt.Insets">
+ <int>3</int>
+ <int>5</int>
+ <int>8</int>
+ <int>5</int>
+ </object>
+ </property>
+ </serializedBean>
+ <beans>
+ <formComponent id="54" beanClass="com.install4j.runtime.beans.formcomponents.SpringComponent" />
+ <formComponent name="Back button" id="55" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+ <serializedBean>
+ <property name="buttonText" type="string">< ${i18n:ButtonBack}</property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="PREVIOUS" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Next button" id="56" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent">
+ <serializedBean>
+ <property name="buttonText" type="string">${i18n:ButtonNext} ></property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="NEXT" />
+ </serializedBean>
+ </formComponent>
+ <formComponent name="Cancel button" id="57" beanClass="com.install4j.runtime.beans.styles.StandardControlButtonComponent" insetLeft="5">
+ <serializedBean>
+ <property name="buttonText" type="string">${i18n:ButtonCancel}</property>
+ <property name="controlButtonType" type="enum" class="com.install4j.api.context.ControlButtonType" value="CANCEL" />
+ </serializedBean>
+ </formComponent>
+ </beans>
+ </group>
+ </formComponents>
+ </style>
+ </beans>
+ </group>
+ </styles>
+ </installerGui>
+ <mediaSets>
+ <windows name="Windows x64 EXE Installer" id="743" customizedId="WINDOWS-X64-EXE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:APPLICATION_FOLDER}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local" architecture="64">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </windows>
+ <macosArchive name="macOS x64 Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS-x64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" setupAppId="2746">
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:MACOS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <topLevelFiles>
+ <symlink name="" "" target="/Applications" />
+ <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
+ <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
+ <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
+ </topLevelFiles>
+ </macosArchive>
+ <macosArchive name="macOS aarch64 Disk Image" id="2796" customizedId="MACOS-AARCH64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS-aarch64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" architecture="aarch64" launcherId="737" setupAppId="2746">
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ </exclude>
+ <jreBundle jreBundleSource="none" />
+ <topLevelFiles>
+ <symlink name="" "" target="/Applications" />
+ <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
+ <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
+ <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
+ </topLevelFiles>
+ </macosArchive>
+ <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ <unixInstaller name="Linux aarch64 Shell Installer" id="2782" customizedId="LINUX-AARCH64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-aarch64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_AARCH64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ <unixArchive name="Unix .tar.gz Archive" id="1596" customizedId="UNIX--TGZ" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixArchive>
+ <unixInstaller name="Unix Shell Installer" id="2639" customizedId="UNIX--SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ </mediaSets>
+ <buildIds>
+ <mediaSet refId="743" />
+ <mediaSet refId="878" />
+ <mediaSet refId="2796" />
+ <mediaSet refId="1595" />
+ <mediaSet refId="2782" />
+ <mediaSet refId="1596" />
+ <mediaSet refId="2639" />
+ </buildIds>
+</install4j>
<?xml version="1.0" encoding="UTF-8"?>
-<install4j version="9.0.5" transformSequenceNumber="9">
+<install4j version="9.0.7" transformSequenceNumber="9">
<directoryPresets config="bin/jalview" />
<application name="${compiler:JALVIEW_APPLICATION_NAME}" applicationId="${compiler:WINDOWS_APPLICATION_ID}" mediaDir="${compiler:BUILD_DIR}" lzmaCompression="true" shortName="${compiler:INTERNAL_ID}" publisher="University of Dundee" publisherWeb="https://www.jalview.org/" version="${compiler:JALVIEW_VERSION}" allPathsRelative="true" macVolumeId="5aac4968c304f65" javaMinVersion="${compiler:JAVA_MIN_VERSION}" javaMaxVersion="${compiler:JAVA_MAX_VERSION}" allowBetaVM="true" jdkMode="jdk" jdkName="JDK 11.0">
<searchSequence>
<variable name="JAVA_VERSION" value="11" />
<variable name="JAVA_INTEGER_VERSION" value="11" />
<variable name="VERSION" value="DEVELOPMENT" />
- <variable name="MACOS_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
- <variable name="WINDOWS_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
- <variable name="LINUX_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
- <variable name="MACOS_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
- <variable name="WINDOWS_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
- <variable name="LINUX_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
+ <variable name="MACOS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-x64/jre" />
+ <variable name="MACOS_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-mac-aarch64/jre" />
+ <variable name="WINDOWS_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-windows-x64/jre" />
+ <variable name="LINUX_X64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-x64/jre" />
+ <variable name="LINUX_AARCH64_JAVA_VM_DIR" value="${compiler:env.HOME}/buildtools/jre/jre-${compiler:JAVA_INTEGER_VERSION}-linux-aarch64/jre" />
+ <variable name="MACOS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_x64.tar.gz" />
+ <variable name="MACOS_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_mac_aarch64.tar.gz" />
+ <variable name="WINDOWS_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_windows_x64.tar.gz" />
+ <variable name="LINUX_X64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_x64.tar.gz" />
+ <variable name="LINUX_AARCH64_JAVA_VM_TGZ" value="${compiler:env.HOME}/buildtools/jre/tgz/jre_${compiler:JAVA_INTEGER_VERSION}_linux_aarch64.tar.gz" />
<variable name="COPYRIGHT_MESSAGE" value="..." />
<variable name="BUNDLE_ID" value="org.jalview.jalview-desktop" />
<variable name="INTERNAL_ID" value="Jalview" />
<variable name="WINDOWS_APPLICATION_ID" value="6595-2347-1923-0725" />
- <variable name="MACOS_DMG_DS_STORE" value="jalview_dmg_DS_Store" />
- <variable name="MACOS_DMG_BG_IMAGE" value="jalview_dmg_background-72dpi.png" />
+ <variable name="MACOS_DMG_DS_STORE" value="utils/channels/default/images/jalview_default_dmg_DS_Store" />
+ <variable name="MACOS_DMG_BG_IMAGE" value="utils/channels/default/images/jalview_default_dmg_background-72dpi.png" />
<variable name="WRAPPER_LINK" value="jalview" />
<variable name="BASH_WRAPPER_SCRIPT" value="jalview.sh" />
<variable name="WRAPPER_SCRIPT_BIN_DIR" value="bin" />
<files defaultUninstallMode="2" preserveSymlinks="false">
<filesets>
<fileset name="Full file set" id="734" customizedId="FULL_FILE_SET" />
- <fileset name="Mac OS X JRE" id="880" />
- <fileset name="Windows JRE" id="882" />
- <fileset name="Jalview application" id="1873" />
+ <fileset name="macOS x64 JVM" id="2801" customizedId="MACOS_X64_JVM" />
+ <fileset name="macOS aarch64 JVM" id="2803" customizedId="MACOS_AARCH64_JVM" />
</filesets>
<roots>
<root id="735" fileset="734" />
- <root id="881" fileset="880" />
- <root id="883" fileset="882" />
- <root id="1874" fileset="1873" />
+ <root id="2802" fileset="2801" />
+ <root id="2804" fileset="2803" />
</roots>
<mountPoints>
- <mountPoint id="454" />
<mountPoint id="736" root="735" />
- <mountPoint id="884" root="881" />
- <mountPoint id="885" root="883" />
- <mountPoint id="1875" root="1874" />
+ <mountPoint id="2805" root="2802" />
+ <mountPoint id="2806" root="2804" />
</mountPoints>
<entries>
- <dirEntry mountPoint="454" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_FILES_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files" />
<dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}" uninstallMode="2" overrideOverwriteMode="true" overrideUninstallMode="true" subDirectory="files">
<exclude>
<entry location="${compiler:WRAPPER_SCRIPT_BIN_DIR}" />
</dirEntry>
<dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/examples" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="examples" />
<dirEntry mountPoint="736" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}/${compiler:WRAPPER_SCRIPT_BIN_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:WRAPPER_SCRIPT_BIN_DIR}" overrideDirMode="true" />
- <dirEntry mountPoint="884" file="${compiler:MACOS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
- <dirEntry mountPoint="885" file="${compiler:WINDOWS_JAVA_VM_DIR}" fileMode="755" overrideFileMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
- <dirEntry mountPoint="1875" file="${compiler:JALVIEW_DIR}/${compiler:GETDOWN_CHANNEL_DIR}/${compiler:JAVA_VERSION}/${compiler:GETDOWN_DIST_DIR}" overwriteMode="1" uninstallMode="2" overrideFileMode="true" overrideOverwriteMode="true" overrideUninstallMode="true" entryMode="subdir" subDirectory="${compiler:GETDOWN_DIST_DIR}" overrideDirMode="true" />
+ <dirEntry mountPoint="2805" file="${compiler:MACOS_X64_JAVA_VM_DIR}" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
+ <dirEntry mountPoint="2806" file="${compiler:MACOS_AARCH64_JAVA_VM_DIR}" entryMode="subdir" subDirectory="${compiler:JRE_DIR}" />
</entries>
<components>
<component name="jalview_getdown" id="1031">
<entry filesetId="734" />
</include>
</component>
- <component name="macos_java_vm" id="1155">
- <include>
- <entry filesetId="880" />
- </include>
- </component>
- <component name="windows_java_vm" id="1156">
- <include>
- <entry filesetId="882" />
- </include>
- </component>
- <component name="getdown" id="1276">
- <include>
- <entry defaultFileset="true" />
- </include>
- </component>
- <component name="jalview" id="1881">
- <include>
- <entry filesetId="1873" />
- </include>
- </component>
</components>
</files>
<launchers>
</installerGui>
<mediaSets>
<windows name="Windows x64 EXE Installer" id="743" customizedId="WINDOWS-X64-EXE" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:APPLICATION_FOLDER}" runPostProcessor="true" postProcessor="${compiler:JSIGN_SH} $EXECUTABLE" customInstallBaseDir="~/AppData/Local">
- <excludedComponents>
- <component id="1155" />
- <component id="1156" />
- <component id="1276" />
- <component id="1881" />
- </excludedComponents>
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
<exclude>
<entry defaultFileset="true" />
- <entry filesetId="880" />
- <entry filesetId="882" />
- <entry filesetId="1873" />
- <entry filesetId="2105" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
</exclude>
- <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:WINDOWS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
</windows>
- <macosArchive name="macOS Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" executeSetupApp="true" setupAppId="2746">
- <excludedComponents>
- <component id="1156" />
- <component id="1276" />
- <component id="1881" />
- </excludedComponents>
+ <macosArchive name="macOS x64 Disk Image" id="878" customizedId="MACOS-X64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS-x64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" launcherId="737" setupAppId="2746">
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="none" includedJre="${compiler:MACOS_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <topLevelFiles>
+ <symlink name="" "" target="/Applications" />
+ <file name=".background/jalview_dmg_background.png" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_BG_IMAGE}" />
+ <file name=".DS_Store" file="${compiler:JALVIEW_DIR}/${compiler:MACOS_DMG_DS_STORE}" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/Jalview-File.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/Jalview-File.icns" />
+ <file name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/Resources/jvl_file.icns" file="${compiler:JALVIEW_DIR}/${compiler:INSTALL4J_UTILS_DIR}/jvl_file.icns" />
+ <symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
+ </topLevelFiles>
+ </macosArchive>
+ <macosArchive name="macOS aarch64 Disk Image" id="2796" customizedId="MACOS-AARCH64-DMG" mediaFileName="${compiler:APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-macOS-aarch64-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" volumeName="${compiler:INSTALLER_NAME}" architecture="aarch64" launcherId="737" setupAppId="2746">
<exclude>
<entry defaultFileset="true" />
- <entry filesetId="882" />
- <entry filesetId="1873" />
+ <entry filesetId="2801" />
</exclude>
<jreBundle jreBundleSource="none" />
<topLevelFiles>
<symlink name="${compiler:JALVIEW_APPLICATION_NAME}.app/Contents/MacOS/${compiler:WRAPPER_LINK}" target="../Resources/app/${compiler:WRAPPER_SCRIPT_BIN_DIR}/${compiler:BASH_WRAPPER_SCRIPT}" />
</topLevelFiles>
</macosArchive>
- <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux_x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
- <excludedComponents>
- <component id="1155" />
- <component id="1156" />
- <component id="1276" />
- <component id="1881" />
- </excludedComponents>
+ <unixInstaller name="Linux x64 Shell Installer" id="1595" customizedId="LINUX-X64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-x64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
+ <exclude>
+ <entry defaultFileset="true" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
+ </exclude>
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
+ </unixInstaller>
+ <unixInstaller name="Linux aarch64 Shell Installer" id="2782" customizedId="LINUX-AARCH64-SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-linux-aarch64-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
<exclude>
<entry defaultFileset="true" />
- <entry filesetId="880" />
- <entry filesetId="882" />
- <entry filesetId="1873" />
- <entry filesetId="2105" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
</exclude>
- <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <jreBundle jreBundleSource="preCreated" includedJre="${compiler:LINUX_AARCH64_JAVA_VM_TGZ}" manualJreEntry="true" />
</unixInstaller>
<unixArchive name="Unix .tar.gz Archive" id="1596" customizedId="UNIX--TGZ" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}">
- <excludedComponents>
- <component id="1155" />
- <component id="1156" />
- <component id="1276" />
- <component id="1881" />
- </excludedComponents>
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
<exclude>
<entry defaultFileset="true" />
- <entry filesetId="880" />
- <entry filesetId="882" />
- <entry filesetId="1873" />
- <entry filesetId="2105" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
</exclude>
- <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
</unixArchive>
<unixInstaller name="Unix Shell Installer" id="2639" customizedId="UNIX--SH" mediaFileName="${compiler:UNIX_APPLICATION_FOLDER}-${compiler:JALVIEW_VERSION}-${compiler:sys.platform}-java_${compiler:JAVA_INTEGER_VERSION}" installDir="${compiler:UNIX_APPLICATION_FOLDER}" customInstallBaseDir="~/opt/">
- <excludedComponents>
- <component id="1155" />
- <component id="1156" />
- <component id="1276" />
- <component id="1881" />
- </excludedComponents>
+ <excludedBeans>
+ <bean refId="2746" />
+ </excludedBeans>
<exclude>
<entry defaultFileset="true" />
- <entry filesetId="880" />
- <entry filesetId="882" />
- <entry filesetId="1873" />
- <entry filesetId="2105" />
+ <entry filesetId="2801" />
+ <entry filesetId="2803" />
</exclude>
- <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_JAVA_VM_TGZ}" manualJreEntry="true" />
+ <jreBundle jreBundleSource="none" includedJre="${compiler:LINUX_X64_JAVA_VM_TGZ}" manualJreEntry="true" />
</unixInstaller>
</mediaSets>
<buildIds>
<mediaSet refId="743" />
<mediaSet refId="878" />
+ <mediaSet refId="2796" />
<mediaSet refId="1595" />
+ <mediaSet refId="2782" />
<mediaSet refId="1596" />
<mediaSet refId="2639" />
</buildIds>