mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
SPARK-2360: Isolate bugs, log improvements
There is a slew of minor issues, such as operating on non-existing images, that throw unchecked exceptions and break the application badly. To isolate these occurrences, exception handling can be put in place, with some logging being generated. That won’t solve the underlying issue, but it should limit the impact of these issues.
This commit is contained in:
@ -303,8 +303,8 @@ public class ContactInfoWindow extends JPanel {
|
|||||||
}
|
}
|
||||||
avatarLabel.setBorder(BorderFactory.createLineBorder(Color.lightGray, 1, true));
|
avatarLabel.setBorder(BorderFactory.createLineBorder(Color.lightGray, 1, true));
|
||||||
}
|
}
|
||||||
catch (MalformedURLException e) {
|
catch (Exception e) {
|
||||||
Log.error(e);
|
Log.warning("Unable to update avatar in contact info window", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get VCard from memory (if available)
|
// Get VCard from memory (if available)
|
||||||
|
|||||||
@ -601,8 +601,8 @@ public class ContactItem extends JPanel {
|
|||||||
setSideIcon(icon);
|
setSideIcon(icon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (MalformedURLException e) {
|
} catch (Exception e) {
|
||||||
Log.error(e);
|
Log.warning("Unable to update avatar in side icon", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -77,12 +77,15 @@ public class VCardPanel extends JPanel {
|
|||||||
add(avatarImage, new GridBagConstraints(0, 0, 1, 3, 0.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 0, 5, 0), 0, 0));
|
add(avatarImage, new GridBagConstraints(0, 0, 1, 3, 0.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 0, 5, 0), 0, 0));
|
||||||
buildAvatarHover();
|
buildAvatarHover();
|
||||||
|
|
||||||
|
try {
|
||||||
Image aImage = SparkRes.getImageIcon(SparkRes.BLANK_24x24).getImage();
|
Image aImage = SparkRes.getImageIcon(SparkRes.BLANK_24x24).getImage();
|
||||||
aImage = aImage.getScaledInstance(-1, 64, Image.SCALE_SMOOTH);
|
aImage = aImage.getScaledInstance(-1, 64, Image.SCALE_SMOOTH);
|
||||||
ImageIcon ico = new ImageIcon(aImage);
|
ImageIcon ico = new ImageIcon(aImage);
|
||||||
|
|
||||||
avatarImage.setIcon(ico);
|
avatarImage.setIcon(ico);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.error("Unable to process image in vcard!", e);
|
||||||
|
}
|
||||||
|
|
||||||
VCard vcard = SparkManager.getVCardManager().getVCard(jid);
|
VCard vcard = SparkManager.getVCardManager().getVCard(jid);
|
||||||
|
|
||||||
@ -105,7 +108,7 @@ public class VCardPanel extends JPanel {
|
|||||||
icon = new ImageIcon(newImage);
|
icon = new ImageIcon(newImage);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
Log.error(e);
|
Log.error("Unable to fetch image in vcard!", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -153,7 +156,7 @@ public class VCardPanel extends JPanel {
|
|||||||
icon = new ImageIcon(newImage);
|
icon = new ImageIcon(newImage);
|
||||||
|
|
||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
Log.error(e1);
|
Log.error("Unable to process vcard avatar", e1);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -75,24 +75,27 @@ public class VCardViewer extends JPanel {
|
|||||||
avatarImage = new JLabel();
|
avatarImage = new JLabel();
|
||||||
add(avatarImage, new GridBagConstraints(0, 0, 1, 3, 0.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 0, 5, 0), 0, 0));
|
add(avatarImage, new GridBagConstraints(0, 0, 1, 3, 0.0, 1.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(5, 0, 5, 0), 0, 0));
|
||||||
|
|
||||||
|
try {
|
||||||
Image aImage = SparkRes.getImageIcon(SparkRes.BLANK_24x24).getImage();
|
Image aImage = SparkRes.getImageIcon(SparkRes.BLANK_24x24).getImage();
|
||||||
aImage = aImage.getScaledInstance(-1, 64, Image.SCALE_SMOOTH);
|
aImage = aImage.getScaledInstance(-1, 64, Image.SCALE_SMOOTH);
|
||||||
ImageIcon ico = new ImageIcon(aImage);
|
ImageIcon ico = new ImageIcon(aImage);
|
||||||
|
|
||||||
avatarImage.setIcon(ico);
|
avatarImage.setIcon(ico);
|
||||||
|
|
||||||
final SwingWorker vcardLoader = new SwingWorker() {
|
final SwingWorker vcardLoader = new SwingWorker()
|
||||||
|
{
|
||||||
VCard vcard = null;
|
VCard vcard = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object construct() {
|
public Object construct()
|
||||||
|
{
|
||||||
vcard = SparkManager.getVCardManager().getVCard(jid);
|
vcard = SparkManager.getVCardManager().getVCard(jid);
|
||||||
return vcard;
|
return vcard;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void finished() {
|
public void finished()
|
||||||
|
{
|
||||||
if (vcard == null) {
|
if (vcard == null) {
|
||||||
// Do nothing.
|
// Do nothing.
|
||||||
return;
|
return;
|
||||||
@ -107,12 +110,10 @@ public class VCardViewer extends JPanel {
|
|||||||
Image aImage = icon.getImage();
|
Image aImage = icon.getImage();
|
||||||
aImage = aImage.getScaledInstance(-1, 48, Image.SCALE_SMOOTH);
|
aImage = aImage.getScaledInstance(-1, 48, Image.SCALE_SMOOTH);
|
||||||
icon = new ImageIcon(aImage);
|
icon = new ImageIcon(aImage);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to get scaled avatar from vcard.", e);
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
} else {
|
||||||
Log.error(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
icon = SparkRes.getImageIcon(SparkRes.DEFAULT_AVATAR_32x32_IMAGE);
|
icon = SparkRes.getImageIcon(SparkRes.DEFAULT_AVATAR_32x32_IMAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,8 +126,10 @@ public class VCardViewer extends JPanel {
|
|||||||
buildUI(vcard);
|
buildUI(vcard);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
vcardLoader.start();
|
vcardLoader.start();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to get avatar from vcard.", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void buildUI(final VCard vcard) {
|
private void buildUI(final VCard vcard) {
|
||||||
|
|||||||
@ -920,26 +920,37 @@ public class ConferenceRoomBrowser extends JPanel implements ActionListener,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isbookmark && ispassword) {
|
if (isbookmark && ispassword) {
|
||||||
|
try {
|
||||||
Image img = ImageCombiner.combine(bookmarkicon, passwordicon);
|
Image img = ImageCombiner.combine(bookmarkicon, passwordicon);
|
||||||
|
if (img != null) {
|
||||||
iconLabel.setIcon(new ImageIcon(img));
|
iconLabel.setIcon(new ImageIcon(img));
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to set icon for bookmarked & password-protected room " + jid, e);
|
||||||
|
}
|
||||||
} else if (isbookmark) {
|
} else if (isbookmark) {
|
||||||
iconLabel.setIcon(bookmarkicon);
|
iconLabel.setIcon(bookmarkicon);
|
||||||
} else if (ispassword) {
|
} else if (ispassword) {
|
||||||
|
try {
|
||||||
|
if (passwordicon != null) {
|
||||||
Image img = ImageCombiner.returnTransparentImage(
|
Image img = ImageCombiner.returnTransparentImage(
|
||||||
passwordicon.getIconWidth(), passwordicon.getIconHeight());
|
passwordicon.getIconWidth(), passwordicon.getIconHeight());
|
||||||
|
Image combined = ImageCombiner.combine(new ImageIcon(img), passwordicon);
|
||||||
Image combined = ImageCombiner.combine(new ImageIcon(img),
|
if (combined != null) {
|
||||||
passwordicon);
|
|
||||||
|
|
||||||
iconLabel.setIcon(new ImageIcon(combined));
|
iconLabel.setIcon(new ImageIcon(combined));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to set icon for password-protected room " + jid, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String occupants = Integer.toString(numberOfOccupants);
|
String occupants = Integer.toString(numberOfOccupants);
|
||||||
if (numberOfOccupants == -1) {
|
if (numberOfOccupants == -1) {
|
||||||
occupants = "n/a";
|
occupants = "n/a";
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Object[] { iconLabel, roomName.toString(), jid.getLocalpart().toString(), occupants };
|
return new Object[] { iconLabel, roomName == null ? jid.getLocalpart().toString() : roomName.toString(), jid.getLocalpart().toString(), occupants };
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -345,12 +345,16 @@ public class CustomMessages {
|
|||||||
// Add Types
|
// Add Types
|
||||||
for (StatusItem statusItem : statusBar.getStatusList()) {
|
for (StatusItem statusItem : statusBar.getStatusList()) {
|
||||||
if (!PresenceManager.isOnPhone(statusItem.getPresence())) {
|
if (!PresenceManager.isOnPhone(statusItem.getPresence())) {
|
||||||
|
try {
|
||||||
ImageIcon icon = (ImageIcon) statusItem.getIcon();
|
ImageIcon icon = (ImageIcon) statusItem.getIcon();
|
||||||
|
|
||||||
ImageIcon newIcon = new ImageIcon(icon.getImage());
|
ImageIcon newIcon = new ImageIcon(icon.getImage());
|
||||||
newIcon.setDescription(statusItem.getText());
|
newIcon.setDescription(statusItem.getText());
|
||||||
|
|
||||||
typeBox.addItem(newIcon);
|
typeBox.addItem(newIcon);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to update icon on custom status bar", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -165,6 +165,7 @@ public class StatusBar extends JPanel implements VCardListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setAvatar(Icon icon) {
|
public void setAvatar(Icon icon) {
|
||||||
|
try {
|
||||||
if (icon == null) {
|
if (icon == null) {
|
||||||
imageLabel.setIcon(null);
|
imageLabel.setIcon(null);
|
||||||
} else {
|
} else {
|
||||||
@ -178,6 +179,9 @@ public class StatusBar extends JPanel implements VCardListener {
|
|||||||
imageLabel.setBorder(null);
|
imageLabel.setBorder(null);
|
||||||
revalidate();
|
revalidate();
|
||||||
allowProfileEditing();
|
allowProfileEditing();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to set avatar", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandPanel getCommandPanel() {
|
public CommandPanel getCommandPanel() {
|
||||||
@ -506,7 +510,7 @@ public class StatusBar extends JPanel implements VCardListener {
|
|||||||
imageLabel.validate();
|
imageLabel.validate();
|
||||||
imageLabel.repaint();
|
imageLabel.repaint();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// no issue
|
Log.warning("Unable to update vcard viewer with avatar data", e);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
imageLabel.setIcon(null);
|
imageLabel.setIcon(null);
|
||||||
|
|||||||
@ -692,52 +692,16 @@ public final class GraphicUtils {
|
|||||||
* @return byte[]
|
* @return byte[]
|
||||||
*/
|
*/
|
||||||
public static byte[] getBytesFromImage(File file) {
|
public static byte[] getBytesFromImage(File file) {
|
||||||
FileInputStream fileInputStream = null;
|
try (FileInputStream fileInputStream = new FileInputStream(file)) {
|
||||||
try {
|
|
||||||
fileInputStream = new FileInputStream(file);
|
|
||||||
byte[] data = new byte[(int) file.length()];
|
byte[] data = new byte[(int) file.length()];
|
||||||
fileInputStream.read(data);
|
fileInputStream.read(data);
|
||||||
fileInputStream.close();
|
|
||||||
return data;
|
return data;
|
||||||
} catch (IOException e) {
|
} catch (Exception e) {
|
||||||
if (fileInputStream != null) {
|
Log.warning("Unable to read image", e);
|
||||||
try {
|
|
||||||
fileInputStream.close();
|
|
||||||
} catch (IOException e1) {
|
|
||||||
Log.error(e1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a scaled down image if the height or width is smaller than the image size.
|
|
||||||
*
|
|
||||||
* @param icon the image icon.
|
|
||||||
* @param newHeight the preferred height.
|
|
||||||
* @param newWidth the preferred width.
|
|
||||||
* @return the icon.
|
|
||||||
*/
|
|
||||||
public static ImageIcon scaleImageIcon(ImageIcon icon, int newHeight, int newWidth) {
|
|
||||||
int height = icon.getIconHeight();
|
|
||||||
int width = icon.getIconWidth();
|
|
||||||
boolean resize = false;
|
|
||||||
if (height > newHeight) {
|
|
||||||
height = newHeight;
|
|
||||||
resize = true;
|
|
||||||
}
|
|
||||||
if (width > newWidth) {
|
|
||||||
width = newWidth;
|
|
||||||
resize = true;
|
|
||||||
}
|
|
||||||
if (!resize) {
|
|
||||||
return icon;
|
|
||||||
}
|
|
||||||
Image img = icon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
|
|
||||||
return new ImageIcon(img);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a scaled down image if the height or width is smaller than the
|
* Returns a scaled down image if the height or width is smaller than the
|
||||||
* image size.
|
* image size.
|
||||||
@ -750,7 +714,43 @@ public final class GraphicUtils {
|
|||||||
* the preferred width.
|
* the preferred width.
|
||||||
* @return the icon.
|
* @return the icon.
|
||||||
*/
|
*/
|
||||||
public static ImageIcon scale(ImageIcon icon, int newHeight, int newWidth) {
|
public static ImageIcon scaleImageIcon(ImageIcon icon, int newHeight, int newWidth)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Image img = icon.getImage();
|
||||||
|
int height = icon.getIconHeight();
|
||||||
|
int width = icon.getIconWidth();
|
||||||
|
|
||||||
|
if (height > newHeight) {
|
||||||
|
height = newHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (width > newWidth) {
|
||||||
|
width = newWidth;
|
||||||
|
}
|
||||||
|
img = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
|
||||||
|
return new ImageIcon(img);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to scale image", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a scaled down image if the height or width is smaller than the
|
||||||
|
* image size.
|
||||||
|
*
|
||||||
|
* @param icon
|
||||||
|
* the image icon.
|
||||||
|
* @param newHeight
|
||||||
|
* the preferred height.
|
||||||
|
* @param newWidth
|
||||||
|
* the preferred width.
|
||||||
|
* @return the icon.
|
||||||
|
*/
|
||||||
|
public static ImageIcon scale(ImageIcon icon, int newHeight, int newWidth)
|
||||||
|
{
|
||||||
|
try {
|
||||||
Image img = icon.getImage();
|
Image img = icon.getImage();
|
||||||
int height = icon.getIconHeight();
|
int height = icon.getIconHeight();
|
||||||
int width = icon.getIconWidth();
|
int width = icon.getIconWidth();
|
||||||
@ -782,6 +782,10 @@ public final class GraphicUtils {
|
|||||||
}
|
}
|
||||||
img = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
|
img = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
|
||||||
return new ImageIcon(img);
|
return new ImageIcon(img);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to scale image", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -796,7 +800,7 @@ public final class GraphicUtils {
|
|||||||
try {
|
try {
|
||||||
return new JFileChooser().getIcon(file);
|
return new JFileChooser().getIcon(file);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.debug("unable to get icon");
|
Log.warning("unable to get icon", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return SparkRes.getImageIcon(SparkRes.DOCUMENT_INFO_32x32);
|
return SparkRes.getImageIcon(SparkRes.DOCUMENT_INFO_32x32);
|
||||||
@ -833,6 +837,7 @@ public final class GraphicUtils {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static ImageIcon fitToSquare(ImageIcon icon, int newSize) {
|
public static ImageIcon fitToSquare(ImageIcon icon, int newSize) {
|
||||||
|
try {
|
||||||
if (newSize <= 0) {
|
if (newSize <= 0) {
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
@ -854,6 +859,10 @@ public final class GraphicUtils {
|
|||||||
newHeight, Image.SCALE_SMOOTH);
|
newHeight, Image.SCALE_SMOOTH);
|
||||||
|
|
||||||
return new ImageIcon(img);
|
return new ImageIcon(img);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to fit image to square", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// public static void centerWindowOnScreen(Runnable runnable) {
|
// public static void centerWindowOnScreen(Runnable runnable) {
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.jivesoftware.spark.util;
|
package org.jivesoftware.spark.util;
|
||||||
|
|
||||||
|
import org.jivesoftware.spark.util.log.Log;
|
||||||
|
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.GraphicsConfiguration;
|
import java.awt.GraphicsConfiguration;
|
||||||
import java.awt.GraphicsDevice;
|
import java.awt.GraphicsDevice;
|
||||||
@ -34,7 +36,6 @@ import javax.swing.JComponent;
|
|||||||
*/
|
*/
|
||||||
public class ImageCombiner {
|
public class ImageCombiner {
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Combines two images into one
|
* Combines two images into one
|
||||||
*
|
*
|
||||||
@ -59,8 +60,9 @@ public class ImageCombiner {
|
|||||||
* @return combined Image
|
* @return combined Image
|
||||||
*/
|
*/
|
||||||
public static Image combine(ImageIcon image1, ImageIcon image2) {
|
public static Image combine(ImageIcon image1, ImageIcon image2) {
|
||||||
|
try {
|
||||||
ImageObserver comp = new JComponent() {
|
ImageObserver comp = new JComponent()
|
||||||
|
{
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -77,13 +79,16 @@ public class ImageCombiner {
|
|||||||
g2.dispose();
|
g2.dispose();
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to combine two images", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Image returnTransparentImage(int w, int h) {
|
public static Image returnTransparentImage(int w, int h) {
|
||||||
return new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
return new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an Image from the specified Icon
|
* Creates an Image from the specified Icon
|
||||||
*
|
*
|
||||||
@ -107,5 +112,4 @@ public class ImageCombiner {
|
|||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -138,14 +138,13 @@ public abstract class SwingWorker {
|
|||||||
try {
|
try {
|
||||||
setValue(construct());
|
setValue(construct());
|
||||||
}
|
}
|
||||||
catch ( Exception e ) {
|
catch (Exception e) {
|
||||||
Log.error( e );
|
Log.error("SwingWorker exception while async constructing value", e);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
threadVar.clear();
|
threadVar.clear();
|
||||||
}
|
}
|
||||||
SwingUtilities.invokeLater(this::finished);
|
SwingUtilities.invokeLater(this::finished);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Thread t = new Thread(doConstruct);
|
Thread t = new Thread(doConstruct);
|
||||||
|
|||||||
@ -72,7 +72,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
|
|||||||
|
|
||||||
if (pluginsettings.exists())
|
if (pluginsettings.exists())
|
||||||
{
|
{
|
||||||
Log.warning("ofmeet-info: Properties-file does exist= " + pluginsettings.getPath());
|
Log.debug("ofmeet-info: Properties-file does exist= " + pluginsettings.getPath());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
props.load(new FileInputStream(pluginsettings));
|
props.load(new FileInputStream(pluginsettings));
|
||||||
@ -439,7 +439,7 @@ public class SparkMeetPlugin implements Plugin, ChatRoomListener, GlobalMessageL
|
|||||||
Log.debug("Native lib folder created and natives extracted");
|
Log.debug("Native lib folder created and natives extracted");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Log.warning("Native lib folder already exist.");
|
Log.debug("Native lib folder already exist.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -643,13 +643,17 @@ public class SparkToaster {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setIcon(Icon icon) {
|
public void setIcon(Icon icon) {
|
||||||
|
try {
|
||||||
if (icon.getIconHeight() > 64 || icon.getIconWidth() > 64) {
|
if (icon.getIconHeight() > 64 || icon.getIconWidth() > 64) {
|
||||||
Image image = ImageCombiner.iconToImage(icon);
|
Image image = ImageCombiner.iconToImage(icon);
|
||||||
label.setIcon(new ImageIcon(image.getScaledInstance(-1, 64,
|
label.setIcon(new ImageIcon(image.getScaledInstance(-1, 64,
|
||||||
Image.SCALE_SMOOTH)));
|
Image.SCALE_SMOOTH)));
|
||||||
} else {
|
} else{
|
||||||
label.setIcon(icon);
|
label.setIcon(icon);
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.warning("Unable to set icon in toaster", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public RolloverButton getCloseButton() {
|
public RolloverButton getCloseButton() {
|
||||||
|
|||||||
Reference in New Issue
Block a user