StringUtils.java : Created missing JavaDoc for methods

GraphicUtils.java: Created missing JavaDoc for methods
VCardEditor.java: Created missing JavaDoc for methods

- Sun Coding Conventions

git-svn-id: http://svn.igniterealtime.org/svn/repos/spark/trunk@12079 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Wolf Posdorfer
2011-03-09 09:18:46 +00:00
committed by wolf.posdorfer
parent 5ecd4ec51c
commit 09f6366888
3 changed files with 2325 additions and 2139 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -67,403 +67,415 @@ public class VCardEditor {
/** /**
* Displays the VCard for an individual. * Displays the VCard for an individual.
* *
* @param vCard the users vcard. * @param vCard
* @param parent the parent component, used for location. * the users vcard.
* @param parent
* the parent component, used for location.
*/ */
public void editProfile(final VCard vCard, JComponent parent) { public void editProfile(final VCard vCard, JComponent parent) {
final JTabbedPane tabbedPane = new JTabbedPane(); final JTabbedPane tabbedPane = new JTabbedPane();
// Initialize Panels // Initialize Panels
personalPanel = new PersonalPanel(); personalPanel = new PersonalPanel();
personalPanel.showJID(false); personalPanel.showJID(false);
tabbedPane.addTab(Res.getString("tab.personal"), personalPanel); tabbedPane.addTab(Res.getString("tab.personal"), personalPanel);
businessPanel = new BusinessPanel(); businessPanel = new BusinessPanel();
tabbedPane.addTab(Res.getString("tab.business"), businessPanel); tabbedPane.addTab(Res.getString("tab.business"), businessPanel);
homePanel = new HomePanel(); homePanel = new HomePanel();
tabbedPane.addTab(Res.getString("tab.home"), homePanel); tabbedPane.addTab(Res.getString("tab.home"), homePanel);
avatarPanel = new AvatarPanel(); avatarPanel = new AvatarPanel();
tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel); tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel);
// Build the UI // Build the UI
buildUI(vCard); buildUI(vCard);
final JOptionPane pane; final JOptionPane pane;
final JDialog dlg; final JDialog dlg;
TitlePanel titlePanel; TitlePanel titlePanel;
ImageIcon icon = VCardManager.getAvatarIcon(vCard); ImageIcon icon = VCardManager.getAvatarIcon(vCard);
if (icon == null) { if (icon == null) {
icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24); icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24);
} }
// Create the title panel for this dialog // Create the title panel for this dialog
titlePanel = new TitlePanel(Res.getString("title.edit.profile"), Res.getString("message.save.profile"), icon, true); titlePanel = new TitlePanel(Res.getString("title.edit.profile"),
Res.getString("message.save.profile"), icon, true);
// Construct main panel w/ layout. // Construct main panel w/ layout.
final JPanel mainPanel = new JPanel(); final JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout()); mainPanel.setLayout(new BorderLayout());
mainPanel.add(titlePanel, BorderLayout.NORTH); mainPanel.add(titlePanel, BorderLayout.NORTH);
// The user should only be able to close this dialog. // The user should only be able to close this dialog.
Object[] options = {Res.getString("save"), Res.getString("cancel")}; Object[] options = { Res.getString("save"), Res.getString("cancel") };
pane = new JOptionPane(tabbedPane, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]); pane = new JOptionPane(tabbedPane, JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
mainPanel.add(pane, BorderLayout.CENTER); mainPanel.add(pane, BorderLayout.CENTER);
JOptionPane p = new JOptionPane(); JOptionPane p = new JOptionPane();
dlg = p.createDialog(parent, Res.getString("title.profile.information")); dlg = p.createDialog(parent, Res.getString("title.profile.information"));
dlg.setModal(false); dlg.setModal(false);
dlg.pack(); dlg.pack();
dlg.setSize(600, 400); dlg.setSize(600, 400);
dlg.setResizable(true); dlg.setResizable(true);
dlg.setContentPane(mainPanel); dlg.setContentPane(mainPanel);
dlg.setLocationRelativeTo(parent); dlg.setLocationRelativeTo(parent);
PropertyChangeListener changeListener = new PropertyChangeListener() { PropertyChangeListener changeListener = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) { public void propertyChange(PropertyChangeEvent e) {
String value = (String)pane.getValue(); String value = (String) pane.getValue();
if (Res.getString("cancel").equals(value)) { if (Res.getString("cancel").equals(value)) {
pane.removePropertyChangeListener(this); pane.removePropertyChangeListener(this);
dlg.dispose(); dlg.dispose();
} } else if (Res.getString("save").equals(value)) {
else if (Res.getString("save").equals(value)) { pane.removePropertyChangeListener(this);
pane.removePropertyChangeListener(this); dlg.dispose();
dlg.dispose(); saveVCard();
saveVCard(); }
} }
} };
};
pane.addPropertyChangeListener(changeListener); pane.addPropertyChangeListener(changeListener);
avatarPanel.setParentDialog(dlg); avatarPanel.setParentDialog(dlg);
dlg.setVisible(true); dlg.setVisible(true);
dlg.toFront(); dlg.toFront();
dlg.requestFocus(); dlg.requestFocus();
personalPanel.focus(); personalPanel.focus();
} }
/** /**
* Displays the VCard for an individual. * Displays the VCard for an individual.
* *
* @param vCard the users vcard. * @param vCard
* @param parent the parent component, used for location. * the users vcard.
* @param parent
* the parent component, used for location.
*/ */
public void viewFullProfile(final VCard vCard, JComponent parent) { public void viewFullProfile(final VCard vCard, JComponent parent) {
final JTabbedPane tabbedPane = new JTabbedPane(); final JTabbedPane tabbedPane = new JTabbedPane();
// Initialize Panels // Initialize Panels
personalPanel = new PersonalPanel(); personalPanel = new PersonalPanel();
personalPanel.allowEditing(false); personalPanel.allowEditing(false);
personalPanel.showJID(false); personalPanel.showJID(false);
tabbedPane.addTab(Res.getString("tab.personal"), personalPanel); tabbedPane.addTab(Res.getString("tab.personal"), personalPanel);
businessPanel = new BusinessPanel(); businessPanel = new BusinessPanel();
businessPanel.allowEditing(false); businessPanel.allowEditing(false);
tabbedPane.addTab(Res.getString("tab.business"), businessPanel); tabbedPane.addTab(Res.getString("tab.business"), businessPanel);
homePanel = new HomePanel(); homePanel = new HomePanel();
homePanel.allowEditing(false); homePanel.allowEditing(false);
tabbedPane.addTab(Res.getString("tab.home"), homePanel); tabbedPane.addTab(Res.getString("tab.home"), homePanel);
avatarPanel = new AvatarPanel(); avatarPanel = new AvatarPanel();
avatarPanel.allowEditing(false); avatarPanel.allowEditing(false);
tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel); tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel);
// Build the UI // Build the UI
buildUI(vCard); buildUI(vCard);
final JOptionPane pane; final JOptionPane pane;
final JDialog dlg; final JDialog dlg;
TitlePanel titlePanel; TitlePanel titlePanel;
ImageIcon icon = VCardManager.getAvatarIcon(vCard); ImageIcon icon = VCardManager.getAvatarIcon(vCard);
if (icon == null) { if (icon == null) {
icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24); icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24);
} }
// Create the title panel for this dialog // Create the title panel for this dialog
titlePanel = new TitlePanel(Res.getString("title.profile.information"), "", icon, true); titlePanel = new TitlePanel(Res.getString("title.profile.information"),
"", icon, true);
// Construct main panel w/ layout. // Construct main panel w/ layout.
final JPanel mainPanel = new JPanel(); final JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout()); mainPanel.setLayout(new BorderLayout());
mainPanel.add(titlePanel, BorderLayout.NORTH); mainPanel.add(titlePanel, BorderLayout.NORTH);
// The user should only be able to close this dialog. // The user should only be able to close this dialog.
Object[] options = {Res.getString("close")}; Object[] options = { Res.getString("close") };
pane = new JOptionPane(tabbedPane, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]); pane = new JOptionPane(tabbedPane, JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
mainPanel.add(pane, BorderLayout.CENTER); mainPanel.add(pane, BorderLayout.CENTER);
JOptionPane p = new JOptionPane(); JOptionPane p = new JOptionPane();
dlg = p.createDialog(parent, Res.getString("title.profile.information")); dlg = p.createDialog(parent, Res.getString("title.profile.information"));
dlg.setModal(false); dlg.setModal(false);
dlg.pack(); dlg.pack();
dlg.setSize(600, 400); dlg.setSize(600, 400);
dlg.setResizable(true); dlg.setResizable(true);
dlg.setContentPane(mainPanel); dlg.setContentPane(mainPanel);
dlg.setLocationRelativeTo(parent); dlg.setLocationRelativeTo(parent);
PropertyChangeListener changeListener = new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
Object o = pane.getValue();
if (o instanceof Integer) {
pane.removePropertyChangeListener(this);
dlg.dispose();
return;
}
PropertyChangeListener changeListener = new PropertyChangeListener() { String value = (String) pane.getValue();
public void propertyChange(PropertyChangeEvent e) { if (Res.getString("close").equals(value)) {
Object o = pane.getValue(); pane.removePropertyChangeListener(this);
if (o instanceof Integer) { dlg.dispose();
pane.removePropertyChangeListener(this); }
dlg.dispose(); }
return; };
}
String value = (String)pane.getValue(); pane.addPropertyChangeListener(changeListener);
if (Res.getString("close").equals(value)) {
pane.removePropertyChangeListener(this);
dlg.dispose();
}
}
};
pane.addPropertyChangeListener(changeListener); dlg.setVisible(true);
dlg.toFront();
dlg.requestFocus();
dlg.setVisible(true); personalPanel.focus();
dlg.toFront();
dlg.requestFocus();
personalPanel.focus();
} }
/** /**
* Displays a users profile. * Displays a users profile.
* *
* @param jid the jid of the user. * @param jid
* @param vcard the users vcard. * the jid of the user.
* @param parent the parent component, used for location handling. * @param vcard
* the users vcard.
* @param parent
* the parent component, used for location handling.
*/ */
public void displayProfile(final String jid, VCard vcard, JComponent parent) { public void displayProfile(final String jid, VCard vcard, JComponent parent) {
VCardViewer viewer = new VCardViewer(jid); VCardViewer viewer = new VCardViewer(jid);
final JFrame dlg = new JFrame(Res.getString("title.view.profile.for", jid)); final JFrame dlg = new JFrame(Res.getString("title.view.profile.for",
jid));
avatarLabel = new JLabel();
avatarLabel.setHorizontalAlignment(JButton.RIGHT);
avatarLabel.setBorder(BorderFactory.createBevelBorder(0, Color.white,
Color.lightGray));
avatarLabel = new JLabel(); // The user should only be able to close this dialog.
avatarLabel.setHorizontalAlignment(JButton.RIGHT); Object[] options = { Res.getString("button.view.profile"),
avatarLabel.setBorder(BorderFactory.createBevelBorder(0, Color.white, Color.lightGray)); Res.getString("close") };
final JOptionPane pane = new JOptionPane(viewer,
// The user should only be able to close this dialog. JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null,
Object[] options = { Res.getString("button.view.profile"), Res.getString("close")}; options, options[0]);
final JOptionPane pane = new JOptionPane(viewer, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]);
// mainPanel.add(pane, new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 5, 5, 5), 0, 0)); // mainPanel.add(pane, new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
// GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 5,
// 5, 5), 0, 0));
dlg.setIconImage(SparkRes.getImageIcon(SparkRes.PROFILE_IMAGE_16x16)
.getImage());
dlg.setIconImage(SparkRes.getImageIcon(SparkRes.PROFILE_IMAGE_16x16).getImage()); dlg.pack();
dlg.setSize(350, 250);
dlg.setResizable(true);
dlg.setContentPane(pane);
dlg.setLocationRelativeTo(parent);
dlg.pack(); PropertyChangeListener changeListener = new PropertyChangeListener() {
dlg.setSize(350, 250); public void propertyChange(PropertyChangeEvent e) {
dlg.setResizable(true); if (pane.getValue() instanceof Integer) {
dlg.setContentPane(pane); pane.removePropertyChangeListener(this);
dlg.setLocationRelativeTo(parent); dlg.dispose();
return;
}
String value = (String) pane.getValue();
if (Res.getString("close").equals(value)) {
pane.removePropertyChangeListener(this);
dlg.dispose();
} else if (Res.getString("button.view.profile").equals(value)) {
pane.setValue(JOptionPane.UNINITIALIZED_VALUE);
SparkManager.getVCardManager().viewFullProfile(jid, pane);
}
}
};
PropertyChangeListener changeListener = new PropertyChangeListener() { pane.addPropertyChangeListener(changeListener);
public void propertyChange(PropertyChangeEvent e) {
if (pane.getValue() instanceof Integer) {
pane.removePropertyChangeListener(this);
dlg.dispose();
return;
}
String value = (String)pane.getValue();
if (Res.getString("close").equals(value)) {
pane.removePropertyChangeListener(this);
dlg.dispose();
}
else if (Res.getString("button.view.profile").equals(value)) {
pane.setValue(JOptionPane.UNINITIALIZED_VALUE);
SparkManager.getVCardManager().viewFullProfile(jid, pane);
}
}
};
pane.addPropertyChangeListener(changeListener); dlg.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent keyEvent) {
if (keyEvent.getKeyChar() == KeyEvent.VK_ESCAPE) {
dlg.dispose();
}
}
});
dlg.addKeyListener(new KeyAdapter() { dlg.setVisible(true);
public void keyPressed(KeyEvent keyEvent) { dlg.toFront();
if (keyEvent.getKeyChar() == KeyEvent.VK_ESCAPE) { dlg.requestFocus();
dlg.dispose();
}
}
});
dlg.setVisible(true);
dlg.toFront();
dlg.requestFocus();
} }
/** /**
* Builds the UI based on a VCard. * Builds the UI based on a VCard.
* *
* @param vcard the vcard used to build the UI. * @param vcard
* the vcard used to build the UI.
*/ */
private void buildUI(VCard vcard) { private void buildUI(VCard vcard) {
personalPanel.setFirstName(vcard.getFirstName()); personalPanel.setFirstName(vcard.getFirstName());
personalPanel.setMiddleName(vcard.getMiddleName()); personalPanel.setMiddleName(vcard.getMiddleName());
personalPanel.setLastName(vcard.getLastName()); personalPanel.setLastName(vcard.getLastName());
personalPanel.setEmailAddress(vcard.getEmailHome()); personalPanel.setEmailAddress(vcard.getEmailHome());
personalPanel.setNickname(vcard.getNickName()); personalPanel.setNickname(vcard.getNickName());
personalPanel.setJID(vcard.getJabberId()); personalPanel.setJID(vcard.getJabberId());
businessPanel.setCompany(vcard.getOrganization()); businessPanel.setCompany(vcard.getOrganization());
businessPanel.setDepartment(vcard.getOrganizationUnit()); businessPanel.setDepartment(vcard.getOrganizationUnit());
businessPanel.setStreetAddress(vcard.getAddressFieldWork("STREET")); businessPanel.setStreetAddress(vcard.getAddressFieldWork("STREET"));
businessPanel.setCity(vcard.getAddressFieldWork("LOCALITY")); businessPanel.setCity(vcard.getAddressFieldWork("LOCALITY"));
businessPanel.setState(vcard.getAddressFieldWork("REGION")); businessPanel.setState(vcard.getAddressFieldWork("REGION"));
businessPanel.setZipCode(vcard.getAddressFieldWork("PCODE")); businessPanel.setZipCode(vcard.getAddressFieldWork("PCODE"));
businessPanel.setCountry(vcard.getAddressFieldWork("CTRY")); businessPanel.setCountry(vcard.getAddressFieldWork("CTRY"));
businessPanel.setJobTitle(vcard.getField("TITLE")); businessPanel.setJobTitle(vcard.getField("TITLE"));
businessPanel.setPhone(vcard.getPhoneWork("VOICE")); businessPanel.setPhone(vcard.getPhoneWork("VOICE"));
businessPanel.setFax(vcard.getPhoneWork("FAX")); businessPanel.setFax(vcard.getPhoneWork("FAX"));
businessPanel.setPager(vcard.getPhoneWork("PAGER")); businessPanel.setPager(vcard.getPhoneWork("PAGER"));
businessPanel.setMobile(vcard.getPhoneWork("CELL")); businessPanel.setMobile(vcard.getPhoneWork("CELL"));
businessPanel.setWebPage(vcard.getField("URL")); businessPanel.setWebPage(vcard.getField("URL"));
// Load Home Info // Load Home Info
homePanel.setStreetAddress(vcard.getAddressFieldHome("STREET")); homePanel.setStreetAddress(vcard.getAddressFieldHome("STREET"));
homePanel.setCity(vcard.getAddressFieldHome("LOCALITY")); homePanel.setCity(vcard.getAddressFieldHome("LOCALITY"));
homePanel.setState(vcard.getAddressFieldHome("REGION")); homePanel.setState(vcard.getAddressFieldHome("REGION"));
homePanel.setZipCode(vcard.getAddressFieldHome("PCODE")); homePanel.setZipCode(vcard.getAddressFieldHome("PCODE"));
homePanel.setCountry(vcard.getAddressFieldHome("CTRY")); homePanel.setCountry(vcard.getAddressFieldHome("CTRY"));
homePanel.setPhone(vcard.getPhoneHome("VOICE")); homePanel.setPhone(vcard.getPhoneHome("VOICE"));
homePanel.setFax(vcard.getPhoneHome("FAX")); homePanel.setFax(vcard.getPhoneHome("FAX"));
homePanel.setPager(vcard.getPhoneHome("PAGER")); homePanel.setPager(vcard.getPhoneHome("PAGER"));
homePanel.setMobile(vcard.getPhoneHome("CELL")); homePanel.setMobile(vcard.getPhoneHome("CELL"));
// Set avatar // Set avatar
byte[] bytes = vcard.getAvatar(); byte[] bytes = vcard.getAvatar();
if (bytes != null && bytes.length > 0) { if (bytes != null && bytes.length > 0) {
ImageIcon icon = new ImageIcon(bytes); ImageIcon icon = new ImageIcon(bytes);
avatarPanel.setAvatar(icon); avatarPanel.setAvatar(icon);
avatarPanel.setAvatarBytes(bytes); avatarPanel.setAvatarBytes(bytes);
if (avatarLabel != null) { if (avatarLabel != null) {
icon = GraphicUtils.scaleImageIcon(icon, 48, 48); icon = GraphicUtils.scaleImageIcon(icon, 48, 48);
avatarLabel.setIcon(icon); avatarLabel.setIcon(icon);
} }
} }
} }
/** /**
* Saves the VCard. * Saves the VCard.
*/ */
private void saveVCard() { private void saveVCard() {
final VCard vcard = new VCard(); final VCard vcard = new VCard();
// Save personal info // Save personal info
vcard.setFirstName(personalPanel.getFirstName()); vcard.setFirstName(personalPanel.getFirstName());
vcard.setLastName(personalPanel.getLastName()); vcard.setLastName(personalPanel.getLastName());
vcard.setMiddleName(personalPanel.getMiddleName()); vcard.setMiddleName(personalPanel.getMiddleName());
vcard.setEmailHome(personalPanel.getEmailAddress()); vcard.setEmailHome(personalPanel.getEmailAddress());
vcard.setNickName(personalPanel.getNickname()); vcard.setNickName(personalPanel.getNickname());
// Save business info // Save business info
vcard.setOrganization(businessPanel.getCompany()); vcard.setOrganization(businessPanel.getCompany());
vcard.setAddressFieldWork("STREET", businessPanel.getStreetAddress()); vcard.setAddressFieldWork("STREET", businessPanel.getStreetAddress());
vcard.setAddressFieldWork("LOCALITY", businessPanel.getCity()); vcard.setAddressFieldWork("LOCALITY", businessPanel.getCity());
vcard.setAddressFieldWork("REGION", businessPanel.getState()); vcard.setAddressFieldWork("REGION", businessPanel.getState());
vcard.setAddressFieldWork("PCODE", businessPanel.getZipCode()); vcard.setAddressFieldWork("PCODE", businessPanel.getZipCode());
vcard.setAddressFieldWork("CTRY", businessPanel.getCountry()); vcard.setAddressFieldWork("CTRY", businessPanel.getCountry());
vcard.setField("TITLE", businessPanel.getJobTitle()); vcard.setField("TITLE", businessPanel.getJobTitle());
vcard.setOrganizationUnit(businessPanel.getDepartment()); vcard.setOrganizationUnit(businessPanel.getDepartment());
vcard.setPhoneWork("VOICE", businessPanel.getPhone()); vcard.setPhoneWork("VOICE", businessPanel.getPhone());
vcard.setPhoneWork("FAX", businessPanel.getFax()); vcard.setPhoneWork("FAX", businessPanel.getFax());
vcard.setPhoneWork("PAGER", businessPanel.getPager()); vcard.setPhoneWork("PAGER", businessPanel.getPager());
vcard.setPhoneWork("CELL", businessPanel.getMobile()); vcard.setPhoneWork("CELL", businessPanel.getMobile());
vcard.setField("URL", businessPanel.getWebPage()); vcard.setField("URL", businessPanel.getWebPage());
// Save Home Info // Save Home Info
vcard.setAddressFieldHome("STREET", homePanel.getStreetAddress()); vcard.setAddressFieldHome("STREET", homePanel.getStreetAddress());
vcard.setAddressFieldHome("LOCALITY", homePanel.getCity()); vcard.setAddressFieldHome("LOCALITY", homePanel.getCity());
vcard.setAddressFieldHome("REGION", homePanel.getState()); vcard.setAddressFieldHome("REGION", homePanel.getState());
vcard.setAddressFieldHome("PCODE", homePanel.getZipCode()); vcard.setAddressFieldHome("PCODE", homePanel.getZipCode());
vcard.setAddressFieldHome("CTRY", homePanel.getCountry()); vcard.setAddressFieldHome("CTRY", homePanel.getCountry());
vcard.setPhoneHome("VOICE", homePanel.getPhone()); vcard.setPhoneHome("VOICE", homePanel.getPhone());
vcard.setPhoneHome("FAX", homePanel.getFax()); vcard.setPhoneHome("FAX", homePanel.getFax());
vcard.setPhoneHome("PAGER", homePanel.getPager()); vcard.setPhoneHome("PAGER", homePanel.getPager());
vcard.setPhoneHome("CELL", homePanel.getMobile()); vcard.setPhoneHome("CELL", homePanel.getMobile());
// Save Avatar // Save Avatar
final File avatarFile = avatarPanel.getAvatarFile(); final File avatarFile = avatarPanel.getAvatarFile();
byte[] avatarBytes = avatarPanel.getAvatarBytes(); byte[] avatarBytes = avatarPanel.getAvatarBytes();
if (avatarFile != null) { if (avatarFile != null) {
try { avatarBytes = GraphicUtils.getBytesFromImage(avatarFile);
// Make it 48x48 ImageIcon icon = new ImageIcon(avatarBytes);
ImageIcon icon = new ImageIcon(avatarFile.toURI().toURL()); Image image = icon.getImage();
Image image = icon.getImage(); image = image.getScaledInstance(-1, 48, Image.SCALE_SMOOTH);
image = image.getScaledInstance(-1, 48, Image.SCALE_SMOOTH); avatarBytes = GraphicUtils.getBytesFromImage(image);
avatarBytes = GraphicUtils.getBytesFromImage(image);
}
catch (MalformedURLException e) {
Log.error("Unable to set avatar.", e);
}
}
// If avatar bytes, persist as vcard. }
if (avatarBytes != null) {
vcard.setAvatar(avatarBytes);
}
try { // If avatar bytes, persist as vcard.
final VCardManager vcardManager = SparkManager.getVCardManager(); if (avatarBytes != null) {
vcardManager.setPersonalVCard(vcard); vcard.setAvatar(avatarBytes);
}
vcard.save(SparkManager.getConnection()); try {
final VCardManager vcardManager = SparkManager.getVCardManager();
vcardManager.setPersonalVCard(vcard);
// Notify users. vcard.save(SparkManager.getConnection());
if (avatarFile != null || avatarBytes != null) {
Presence presence = SparkManager.getWorkspace().getStatusBar().getPresence();
Presence newPresence = new Presence(presence.getType(), presence.getStatus(), presence.getPriority(), presence.getMode());
// Change my own presence // Notify users.
SparkManager.getSessionManager().changePresence(newPresence); if (avatarFile != null || avatarBytes != null) {
Presence presence = SparkManager.getWorkspace().getStatusBar()
.getPresence();
Presence newPresence = new Presence(presence.getType(),
presence.getStatus(), presence.getPriority(),
presence.getMode());
// Chnage avatar in status bar. // Change my own presence
StatusBar statusBar = SparkManager.getWorkspace().getStatusBar(); SparkManager.getSessionManager().changePresence(newPresence);
statusBar.setAvatar(new ImageIcon(vcard.getAvatar()));
}
else {
String firstName = vcard.getFirstName();
String lastName = vcard.getLastName();
StatusBar statusBar = SparkManager.getWorkspace().getStatusBar();
if (ModelUtil.hasLength(firstName) && ModelUtil.hasLength(lastName)) {
statusBar.setNickname(firstName + " " + lastName);
}
else if (ModelUtil.hasLength(firstName)) {
statusBar.setNickname(firstName);
}
statusBar.setAvatar(null); // Chnage avatar in status bar.
} StatusBar statusBar = SparkManager.getWorkspace()
.getStatusBar();
statusBar.setAvatar(new ImageIcon(vcard.getAvatar()));
} else {
String firstName = vcard.getFirstName();
String lastName = vcard.getLastName();
StatusBar statusBar = SparkManager.getWorkspace()
.getStatusBar();
if (ModelUtil.hasLength(firstName)
&& ModelUtil.hasLength(lastName)) {
statusBar.setNickname(firstName + " " + lastName);
} else if (ModelUtil.hasLength(firstName)) {
statusBar.setNickname(firstName);
}
// Notify listenres statusBar.setAvatar(null);
SparkManager.getVCardManager().notifyVCardListeners(); }
}
catch (XMPPException e) { // Notify listenres
Log.error(e); SparkManager.getVCardManager().notifyVCardListeners();
JOptionPane.showMessageDialog(SparkManager.getMainWindow(), Res.getString("message.vcard.not.supported"), Res.getString("title.error"), JOptionPane.ERROR_MESSAGE); } catch (XMPPException e) {
} Log.error(e);
JOptionPane.showMessageDialog(SparkManager.getMainWindow(),
Res.getString("message.vcard.not.supported"),
Res.getString("title.error"), JOptionPane.ERROR_MESSAGE);
}
} }
} }