package be.nikiroo.jvcard.tui.panes;
import java.awt.Image;
-import java.io.ByteArrayInputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-import javax.imageio.ImageIO;
-import javax.xml.bind.DatatypeConverter;
-
import be.nikiroo.jvcard.Contact;
import be.nikiroo.jvcard.Data;
import be.nikiroo.jvcard.TypeInfo;
private boolean fullscreenImage;
private Panel infoPanel;
private Label note;
- ResourceBundle map;
+
+ // from .properties file:
+ private int labelSize = -1;
+ private String infoFormat = "";
+ //
public ContactDetails(Contact contact) {
- map = Bundles.getBundle("display");
+ // Get the .properties info:
+ ResourceBundle map = Bundles.getBundle("display");
+
+ try {
+ labelSize = Integer.parseInt(map
+ .getString("CONTACT_DETAILS_LABEL_WIDTH"));
+
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ labelSize = -1;
+ } catch (MissingResourceException e) {
+ labelSize = -1;
+ }
+
+ try {
+ infoFormat = map.getString("CONTACT_DETAILS_INFO");
+ } catch (MissingResourceException e) {
+ e.printStackTrace();
+ }
+ //
BorderLayout blayout = new BorderLayout();
setLayoutManager(blayout);
infoPanel.removeAllComponents();
String name = contact.getPreferredDataValue("FN");
- if (name == null || name.length() == 0) {
- // TODO format it ourself
- name = contact.getPreferredDataValue("N");
- }
-
infoPanel.addComponent(UiColors.Element.VIEW_CONTACT_NAME
.createLabel(name));
infoPanel.addComponent(UiColors.Element.VIEW_CONTACT_NORMAL
.createLabel(""));
// List of infos:
- int labelSize = -1;
- try {
- labelSize = Integer.parseInt(map
- .getString("CONTACT_DETAILS_LABEL_WIDTH"));
-
- } catch (NumberFormatException e) {
- e.printStackTrace();
- labelSize = -1;
- } catch (MissingResourceException e) {
- labelSize = -1;
- }
-
- String infoFormat = "";
- try {
- infoFormat = map.getString("CONTACT_DETAILS_INFO");
- } catch (MissingResourceException e) {
- e.printStackTrace();
- }
-
String[] infos = infoFormat.split("\\|");
for (String info : infos) {
// # - "=FIELD" will take the preferred value for this field
Data photo = contact.getPreferredData("PHOTO");
if (photo != null) {
TypeInfo encoding = null;
- for (int index = 0; index < photo.size(); index++) {
- TypeInfo info = photo.get(index);
+ for (TypeInfo info : photo) {
if (info.getName() != null) {
if (info.getName().equalsIgnoreCase("ENCODING"))
encoding = info;
&& encoding.getValue().equalsIgnoreCase("b")) {
try {
- image = ImageIO.read(new ByteArrayInputStream(
- DatatypeConverter.parseBase64Binary(photo
- .getValue())));
- image.toString();
+ image = StringUtils.toImage(photo.getValue());
} catch (Exception e) {
System.err.println("Cannot parse image for contact: "
+ contact.getPreferredDataValue("UID"));