public FriendChathistoryPanel(String path, String ID, String name, String UserID) { this.setLayout(null); this.setBackground(new Color(255, 255, 255)); FriendPath = path; FriendID = ID; Friendname = name; this.UserID = UserID; File file = new File(FriendPath + "/" + ID + ".txt"); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { } } FileInputStream fileinput; try { fileinput = new FileInputStream(file); InputStreamReader filereader = new InputStreamReader(fileinput); buffreader = new BufferedReader(filereader); read = buffreader.readLine(); while (read != null) { String id = read; String time = buffreader.readLine(); read = buffreader.readLine(); String recentname = ""; AvatarPanel avatar; System.out.println(id); System.out.println(ClientUI.ClientID); System.out.println(id.equals(ClientUI.ClientID)); if (id.equals(ClientUI.ClientID)) { avatar = new AvatarPanel(path + "/" + id + ".jpg"); recentname = ClientUI.Username; } else { avatar = new AvatarPanel(path + "/" + id + ".jpg"); recentname = Friendname; } DialogboxPanel dialogpanel = new DialogboxPanel(recentname, time, read); dialogpanel.setBounds(60, line, dialogpanel.getWidth(), dialogpanel.getHeight()); this.add(dialogpanel); avatar.setBounds(10, line, 40, 40); this.add(avatar); line = line + dialogpanel.getHeight() + 15; read = buffreader.readLine(); } fileinput.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.setSize(580, line); this.setBounds(0, 0, 580, this.getHeight()); }
public void addContent(String id, String content, String name, String time) { AvatarPanel avatar; avatar = new AvatarPanel(FriendPath + "/" + id + ".jpg"); DialogboxPanel dialogpanel = new DialogboxPanel(name, time, content); dialogpanel.setBounds(60, line, dialogpanel.getWidth(), dialogpanel.getHeight()); this.add(dialogpanel); avatar.setBounds(10, line, 40, 40); this.add(avatar); line = line + dialogpanel.getHeight() + 15; this.setSize(580, line); this.setBounds(0, 0, 580, this.getHeight()); }
/** * Builds the UI based on a VCard. * * @param vcard the vcard used to build the UI. */ private void buildUI(VCard vcard) { personalPanel.setFirstName(vcard.getFirstName()); personalPanel.setMiddleName(vcard.getMiddleName()); personalPanel.setLastName(vcard.getLastName()); personalPanel.setEmailAddress(vcard.getEmailHome()); personalPanel.setNickname(vcard.getNickName()); personalPanel.setJID(vcard.getJabberId()); businessPanel.setCompany(vcard.getOrganization()); businessPanel.setDepartment(vcard.getOrganizationUnit()); businessPanel.setStreetAddress(vcard.getAddressFieldWork("STREET")); businessPanel.setCity(vcard.getAddressFieldWork("LOCALITY")); businessPanel.setState(vcard.getAddressFieldWork("REGION")); businessPanel.setZipCode(vcard.getAddressFieldWork("PCODE")); businessPanel.setCountry(vcard.getAddressFieldWork("CTRY")); businessPanel.setJobTitle(vcard.getField("TITLE")); businessPanel.setPhone(vcard.getPhoneWork("VOICE")); businessPanel.setFax(vcard.getPhoneWork("FAX")); businessPanel.setPager(vcard.getPhoneWork("PAGER")); businessPanel.setMobile(vcard.getPhoneWork("CELL")); businessPanel.setWebPage(vcard.getField("URL")); // Load Home Info homePanel.setStreetAddress(vcard.getAddressFieldHome("STREET")); homePanel.setCity(vcard.getAddressFieldHome("LOCALITY")); homePanel.setState(vcard.getAddressFieldHome("REGION")); homePanel.setZipCode(vcard.getAddressFieldHome("PCODE")); homePanel.setCountry(vcard.getAddressFieldHome("CTRY")); homePanel.setPhone(vcard.getPhoneHome("VOICE")); homePanel.setFax(vcard.getPhoneHome("FAX")); homePanel.setPager(vcard.getPhoneHome("PAGER")); homePanel.setMobile(vcard.getPhoneHome("CELL")); // Set avatar byte[] bytes = vcard.getAvatar(); if (bytes != null && bytes.length > 0) { ImageIcon icon = new ImageIcon(bytes); avatarPanel.setAvatar(icon); avatarPanel.setAvatarBytes(bytes); if (avatarLabel != null) { icon = GraphicUtils.scaleImageIcon(icon, 48, 48); avatarLabel.setIcon(icon); } } }
/** * Displays the VCard for an individual. * * @param vCard the users vcard. * @param parent the parent component, used for location. */ public void editProfile(final VCard vCard, JComponent parent) { final JTabbedPane tabbedPane = new JTabbedPane(); // Initialize Panels personalPanel = new PersonalPanel(); personalPanel.showJID(false); businessPanel = new BusinessPanel(); homePanel = new HomePanel(); avatarPanel = new AvatarPanel(); // employeePanel = new EmployeePanel(); String employeeOf = vCard.getField("employeeOf"); if (vCard.getJabberId() == SparkManager.getUserManager() .getJIDFromDisplayName(SparkManager.getUserManager().getNickname())) { if ((employeeOf == null || employeeOf.isEmpty())) { employeeListPanel = new EmployeeListPanel(); tabbedPane.addTab(Res.getString("tab.home"), homePanel); tabbedPane.addTab(Res.getString("tab.business"), personalPanel); tabbedPane.addTab(Res.getString("tab.business"), businessPanel); tabbedPane.addTab(Res.getString("tab.employees"), employeeListPanel); // zmienione employee = false; } else { } } tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel); // Build the UI buildUI(vCard); final JOptionPane pane; final JDialog dlg; TitlePanel titlePanel; ImageIcon icon = VCardManager.getAvatarIcon(vCard); if (icon == null) { icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24); } // Create the title panel for this dialog titlePanel = new TitlePanel( Res.getString("title.edit.profile"), Res.getString("message.save.profile"), icon, true); // Construct main panel w/ layout. final JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(titlePanel, BorderLayout.NORTH); // The user should only be able to close this dialog. Object[] options = {Res.getString("save"), Res.getString("cancel")}; pane = new JOptionPane( tabbedPane, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]); mainPanel.add(pane, BorderLayout.CENTER); JOptionPane p = new JOptionPane(); dlg = p.createDialog(parent, Res.getString("title.profile.information")); dlg.setModal(false); dlg.pack(); dlg.setSize(600, 400); dlg.setResizable(true); dlg.setContentPane(mainPanel); dlg.setLocationRelativeTo(parent); PropertyChangeListener changeListener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { String value = (String) pane.getValue(); if (Res.getString("cancel").equals(value)) { pane.removePropertyChangeListener(this); dlg.dispose(); } else if (Res.getString("save").equals(value)) { // pane.removePropertyChangeListener(this); // dlg.dispose(); // saveVCard(); preSaveVCard(); } } }; // JPanel bottomPanel = (JPanel)pane.getComponent(0); JButton saveButton = new JButton(); tabbedPane.addChangeListener( new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { preSaveVCard(); } }); for (Component component : pane.getComponents()) { if (component instanceof JButton) { JButton b = (JButton) component; if (b.getText().equalsIgnoreCase("Save")) { saveButton = (JButton) component; } } } saveButton.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { preSaveVCard(); } }); avatarPanel.setParentDialog(dlg); dlg.setVisible(true); dlg.toFront(); dlg.requestFocus(); personalPanel.focus(); }
/** Saves the VCard. */ private void saveVCard() { final VCard vcard = new VCard(); // Save personal info vcard.setFirstName(personalPanel.getFirstName()); vcard.setLastName(personalPanel.getLastName()); vcard.setMiddleName(personalPanel.getMiddleName()); vcard.setEmailHome(personalPanel.getEmailAddress()); vcard.setNickName(personalPanel.getNickname()); // Save business info vcard.setOrganization(businessPanel.getCompany()); vcard.setAddressFieldWork("STREET", businessPanel.getStreetAddress()); vcard.setAddressFieldWork("LOCALITY", businessPanel.getCity()); vcard.setAddressFieldWork("REGION", businessPanel.getState()); vcard.setAddressFieldWork("PCODE", businessPanel.getZipCode()); vcard.setAddressFieldWork("CTRY", businessPanel.getCountry()); vcard.setField("TITLE", businessPanel.getJobTitle()); vcard.setOrganizationUnit(businessPanel.getDepartment()); vcard.setPhoneWork("VOICE", businessPanel.getPhone()); vcard.setPhoneWork("FAX", businessPanel.getFax()); vcard.setPhoneWork("PAGER", businessPanel.getPager()); vcard.setPhoneWork("CELL", businessPanel.getMobile()); vcard.setField("URL", businessPanel.getWebPage()); // Save Home Info vcard.setAddressFieldHome("STREET", homePanel.getStreetAddress()); vcard.setAddressFieldHome("LOCALITY", homePanel.getCity()); vcard.setAddressFieldHome("REGION", homePanel.getState()); vcard.setAddressFieldHome("PCODE", homePanel.getZipCode()); vcard.setAddressFieldHome("CTRY", homePanel.getCountry()); vcard.setPhoneHome("VOICE", homePanel.getPhone()); vcard.setPhoneHome("FAX", homePanel.getFax()); vcard.setPhoneHome("PAGER", homePanel.getPager()); vcard.setPhoneHome("CELL", homePanel.getMobile()); // Save Avatar final File avatarFile = avatarPanel.getAvatarFile(); byte[] avatarBytes = avatarPanel.getAvatarBytes(); if (avatarFile != null) { try { // Make it 48x48 ImageIcon icon = new ImageIcon(avatarFile.toURI().toURL()); Image image = icon.getImage(); image = image.getScaledInstance(-1, 48, Image.SCALE_SMOOTH); 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 { final VCardManager vcardManager = SparkManager.getVCardManager(); vcardManager.setPersonalVCard(vcard); vcard.save(SparkManager.getConnection()); // Notify users. 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 SparkManager.getSessionManager().changePresence(newPresence); // 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); } statusBar.setAvatar(null); } // Notify listenres SparkManager.getVCardManager().notifyVCardListeners(); } catch (XMPPException e) { Log.error(e); JOptionPane.showMessageDialog( SparkManager.getMainWindow(), Res.getString("message.vcard.not.supported"), Res.getString("title.error"), JOptionPane.ERROR_MESSAGE); } }
/** * Displays the VCard for an individual. * * @param vCard the users vcard. * @param parent the parent component, used for location. */ public void viewFullProfile(final VCard vCard, JComponent parent) { final JTabbedPane tabbedPane = new JTabbedPane(); // Initialize Panels personalPanel = new PersonalPanel(); personalPanel.allowEditing(false); personalPanel.showJID(false); // tabbedPane.addTab(Res.getString("tab.personal"), personalPanel); businessPanel = new BusinessPanel(); businessPanel.allowEditing(false); tabbedPane.addTab(Res.getString("tab.business"), businessPanel); homePanel = new HomePanel(); homePanel.allowEditing(false); // tabbedPane.addTab(Res.getString("tab.home"), homePanel); avatarPanel = new AvatarPanel(); avatarPanel.allowEditing(false); tabbedPane.addTab(Res.getString("tab.avatar"), avatarPanel); // employeePanel = new EmployeePanel(); // employeePanel.allowEditing(false); // tabbedPane.addTab("Pracownicy", employeePanel); String employeeOf = vCard.getField("employeeOf"); if (vCard.getJabberId() == SparkManager.getUserManager() .getJIDFromDisplayName(SparkManager.getUserManager().getNickname())) { if ((employeeOf == null || employeeOf.isEmpty())) { employeeListPanel = new EmployeeListPanel(); tabbedPane.addTab(Res.getString("tab.home"), homePanel); tabbedPane.addTab(Res.getString("tab.business"), businessPanel); tabbedPane.addTab("Pracownicy", employeeListPanel); employee = false; } else { } } // Build the UI buildUI(vCard); final JOptionPane pane; final JDialog dlg; TitlePanel titlePanel; ImageIcon icon = VCardManager.getAvatarIcon(vCard); if (icon == null) { icon = SparkRes.getImageIcon(SparkRes.BLANK_24x24); } // Create the title panel for this dialog titlePanel = new TitlePanel(Res.getString("title.profile.information"), "", icon, true); // Construct main panel w/ layout. final JPanel mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(titlePanel, BorderLayout.NORTH); // The user should only be able to close this dialog. Object[] options = {Res.getString("close")}; pane = new JOptionPane( tabbedPane, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null, options, options[0]); mainPanel.add(pane, BorderLayout.CENTER); JOptionPane p = new JOptionPane(); dlg = p.createDialog(parent, Res.getString("title.profile.information")); dlg.setModal(false); dlg.pack(); dlg.setSize(600, 400); dlg.setResizable(true); dlg.setContentPane(mainPanel); 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; } String value = (String) pane.getValue(); if (Res.getString("close").equals(value)) { pane.removePropertyChangeListener(this); dlg.dispose(); } } }; pane.addPropertyChangeListener(changeListener); dlg.setVisible(true); dlg.toFront(); dlg.requestFocus(); personalPanel.focus(); }