import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
+import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseAdapter;
import java.awt.image.ImageObserver;
+import java.awt.Toolkit;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.MissingResourceException;
}
}
});
+
+ // Allow a mouse click to copy the status text
+ addMouseListener(
+ new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent ev) {
+ StringSelection selection = new StringSelection(labelText());
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, selection);
+ }
+ }
+ );
}
public void init (UpdateInterface ifc, RotatingBackgrounds bg, Image barimg)
if (_ifc == null) {
return;
}
- String status = _status;
- if (!_displayError) {
- for (int ii = 0; ii < _statusDots; ii++) {
- status += " .";
- }
- }
- StringBuilder labelText = new StringBuilder();
- if (_ifc.displayVersion) {
- labelText.append("launcher version: " + Build.version());
- labelText.append("\n");
- labelText.append("install4j version: " + Application.i4jVersion);
- labelText.append("\n");
- labelText.append("installer version: " + System.getProperty("installer_template_version"));
- labelText.append("\n");
- }
- if (_ifc.displayAppbase) {
- labelText.append("appbase: " + _appbase);
- labelText.append("\n");
- }
- labelText.append(status);
+ String labelText = labelText();
- _newlab = createLabel(labelText.toString(), new Color(_ifc.statusText, true));
+ _newlab = createLabel(labelText, new Color(_ifc.statusText, true));
// set the width of the label to the width specified
int width = _ifc.status.width;
if (width == 0) {
}
repaint();
}
+ private String labelText() {
+ String status = _status;
+ if (!_displayError) {
+ for (int ii = 0; ii < _statusDots; ii++) {
+ status += " .";
+ }
+ }
+ return getLabelText()+status;
+ }
+
+ private String getLabelText() {
+ StringBuilder labelText = new StringBuilder();
+ if (_ifc.displayVersion) {
+ labelText.append("launcher version: ").append(Build.version());
+ labelText.append("\n");
+ labelText.append("install4j version: ").append(Application.i4jVersion);
+ labelText.append("\n");
+ labelText.append("installer version: ").append(System.getProperty("installer_template_version"));
+ labelText.append("\n");
+ }
+ if (_ifc.displayAppbase) {
+ labelText.append("appbase: ").append(_appbase);
+ labelText.append("\n");
+ }
+ return labelText.toString();
+ }
/**
* Get the y coordinate of a label in the status area.