예제 #1
0
 @Override
 public void mouseClicked(MouseEvent event) {
   Object obj = event.getSource();
   if (obj instanceof JButton) {
     JButton clickedButton = (JButton) obj;
     if (clickedButton.equals(one)) {
       this.clearPanel();
       Game next = new Game(this.frame, 1, this.bc);
       next.setBounds(0, 0, this.getWidth(), this.getHeight());
       this.frame.setContentPane(next);
       this.revalidate();
       this.repaint();
     }
     if (clickedButton.equals(two)) {
       this.clearPanel();
       Game next = new Game(this.frame, 2, this.bc);
       next.setBounds(0, 0, this.getWidth(), this.getHeight());
       this.frame.setContentPane(next);
       this.revalidate();
       this.repaint();
     }
     if (clickedButton.equals(three)) {
       this.clearPanel();
       Game next = new Game(this.frame, 3, this.bc);
       next.setBounds(0, 0, this.frame.getWidth(), this.frame.getHeight());
       this.frame.setContentPane(next);
       this.revalidate();
       this.repaint();
     }
     if (clickedButton.equals(four)) {
       this.clearPanel();
       Game next = new Game(this.frame, 4, this.bc);
       next.setBounds(0, 0, this.frame.getWidth(), this.frame.getHeight());
       // this.frame.setContentPane(next);
       this.frame.add(next);
       this.revalidate();
       this.repaint();
     }
     if (clickedButton.equals(back)) {
       this.clearPanel();
       HomePanel next = new HomePanel(this.frame, bc);
       next.setBounds(0, 0, this.getWidth(), this.getHeight());
       // this.frame.setContentPane(next);
       this.frame.add(next);
       this.revalidate();
       this.repaint();
     }
   }
 }
예제 #2
0
  /**
   * 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);
      }
    }
  }
예제 #3
0
  /** 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);
    }
  }
예제 #4
0
  /**
   * 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();
  }
예제 #5
0
  public MainForm() {
    GUIStandartOperations.FrameStartOperations(this);
    setSize(960, 610);
    setLocationRelativeTo(null);
    setLayout(null);

    addMouseListener(
        new MouseAdapter() {
          public void mouseReleased(MouseEvent e) {
            mouseDownCompCoords = null;
          }

          public void mousePressed(MouseEvent e) {
            mouseDownCompCoords = e.getPoint();
          }
        });

    addMouseMotionListener(
        new MouseAdapter() {
          public void mouseDragged(MouseEvent e) {
            Point currCoords = e.getLocationOnScreen();
            setLocation(currCoords.x - mouseDownCompCoords.x, currCoords.y - mouseDownCompCoords.y);
          }
        });

    dialogPanelArrayList = new ArrayList<>();
    dialogTabArrayList = new ArrayList<>();

    bigPanel = new JPanel(null);
    bigPanel.setSize(1300, 600);
    bigPanel.setOpaque(false);
    bigPanel.setBackground(new Color(0, 0, 0, 0));

    dialogTabsPanel = new JPanel(null);
    dialogTabsPanel.setBackground(new Color(0, 0, 0, 150));

    JPanel topPanel = new JPanel(null);
    topPanel.setBackground(new Color(0, 0, 0, 150));
    topPanel.setBounds(30, 20, 900, 65);
    topPanel.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 0, Color.WHITE));
    bigPanel.add(topPanel);

    notificationPanel = new NotificationPanel();
    notificationPanel.setBounds(5, 0, 500, 65);
    notificationPanel.setBorder(null);
    topPanel.add(notificationPanel);

    RepaintPanel repaintPanel = new RepaintPanel(notificationPanel);
    Thread thread = new Thread(repaintPanel);
    thread.start();

    RepaintPanel repaintPanel2 = new RepaintPanel(bigPanel);
    Thread thread2 = new Thread(repaintPanel2);
    thread2.start();

    changeAccButton =
        GUIStandartOperations.ButtonStartOperations(
            changeAccButIcon, changeAccButIconEntered, true);
    settingsButton =
        GUIStandartOperations.ButtonStartOperations(settingsButIcon, settingsButIconEntered, true);
    contactsButton =
        GUIStandartOperations.ButtonStartOperations(contactsButIcon, contactsButIconEntered, true);
    exitButton = GUIStandartOperations.ButtonStartOperations(exitButIcon, exitButIconEntered, true);
    plusButton = GUIStandartOperations.ButtonStartOperations(plusButIcon, plusButIconEntered, true);
    homeButton =
        GUIStandartOperations.ButtonStartOperations(dialogButIcon, dialogButIconEntered, true);

    changeAccButton.setToolTipText("Change account");
    settingsButton.setToolTipText("Your personal settings");
    contactsButton.setToolTipText("Contacts");
    exitButton.setToolTipText("Exit ChatApp");
    homeButton.setToolTipText("Dialog page / Home");

    friendPanelButton = new JButton();
    friendPanelButton.setOpaque(false);
    friendPanelButton.setBorder(null);
    friendPanelButton.setFocusPainted(false);
    friendPanelButton.setContentAreaFilled(false);
    friendPanelButton.setIcon(friendSideOpenIcon);
    friendPanelButton.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseEntered(MouseEvent e) {
            friendPanelButton.setIcon(friendSideOpenIconEntered);
          }

          @Override
          public void mouseExited(MouseEvent e) {
            friendPanelButton.setIcon(friendSideOpenIcon);
          }
        });

    friendPanelButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            isFriendPanelOpened = !isFriendPanelOpened;
            friendPanelMode();
          }
        });

    friendSidePanel = new FriendSidePanel();
    friendSidePanel.setBorder(null);
    friendSidePanel.setBounds(970, 50, 450, 650);
    bigPanel.add(friendSidePanel);

    noConversationsPanel = new JPanel(null);
    noConversationsPanel.setOpaque(false);
    noConversationsPanel.setBackground(new Color(0, 0, 0, 0));
    noConversationsPanel.setBounds(0, 0, 960, 600);
    JLabel noConversationLabel = new JLabel("You have no active conversations now...");
    noConversationLabel.setFont(Fonts.nickFont);
    noConversationLabel.setHorizontalAlignment(SwingConstants.CENTER);
    noConversationLabel.setForeground(Color.WHITE);
    noConversationLabel.setBackground(new Color(0, 0, 0, 0));
    noConversationLabel.setBounds(0, 300, 960, 50);

    JButton noConversationsButton = GUIStandartOperations.ButtonStartOperations(null, null, false);
    noConversationsButton.setText("<HTML><U>It's time to begin, isn't it?</U></HTML>");
    noConversationsButton.setFont(Fonts.nickFont);
    noConversationsButton.setBounds(0, 350, 960, 50);
    noConversationsButton.setHorizontalAlignment(SwingConstants.CENTER);
    noConversationsButton.setForeground(Color.RED);
    noConversationsButton.addActionListener(
        new AbstractAction() {
          @Override
          public void actionPerformed(ActionEvent e) {
            isFriendPanelOpened = true;
            friendPanelMode();
          }
        });

    noConversationsPanel.add(noConversationsButton);
    noConversationsPanel.add(noConversationLabel);
    noConversationsPanel.setVisible(false);

    final int shiftRight = 90;

    changeAccButton.setBounds(420 + shiftRight, 6, 64, 64);
    topPanel.add(changeAccButton);
    homeButton.setBounds(550 + shiftRight, 6, 64, 64);
    topPanel.add(homeButton);
    settingsButton.setBounds(650 + shiftRight, 0, 64, 64);
    topPanel.add(settingsButton);
    contactsButton.setBounds(600 + shiftRight, 0, 64, 64);
    topPanel.add(contactsButton);
    exitButton.setBounds(470 + shiftRight, 0, 64, 64);
    topPanel.add(exitButton);
    friendPanelButton.setBounds(730 + shiftRight, 6, 64, 64);
    topPanel.add(friendPanelButton);

    friendPanelButton.setVisible(false);

    homePanel = new HomePanel();
    homePanel.setBounds(0, 84, 960, 1000);

    dialogTabsPanel.setBounds(30, 100, 900, 40);
    dialogTabsPanel.setVisible(false);

    bigPanel.add(dialogTabsPanel);
    bigPanel.add(homePanel);
    bigPanel.add(noConversationsPanel);

    this.add(bigPanel);

    exitButton.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            System.exit(0);
          }
        });
  }
예제 #6
0
  public void changeMode(Mode mode) {
    if (mode == Mode.DIALOG) {
      boolean newMessages = false;
      for (int i = 0; i < dialogTabArrayList.size(); i++) {
        if (dialogTabArrayList.get(i).getNewMessageLabel().isVisible()) {
          newMessages = true;
        }
      }
      if (newMessages) {
        homeButton.setIcon(newDialogButIcon);
      } else {
        homeButton.setIcon(dialogButIcon);
      }
      final boolean finalNewMessages = newMessages;
      homeButton.addMouseListener(
          new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
              if (finalNewMessages) {
                homeButton.setIcon(newDialogButIconEntered);
              } else {
                homeButton.setIcon(dialogButIconEntered);
              }
            }

            @Override
            public void mouseExited(MouseEvent e) {
              if (finalNewMessages) {
                homeButton.setIcon(newDialogButIcon);
              } else {
                homeButton.setIcon(dialogButIcon);
              }
            }
          });

      if (!(currentDialogTab == null)) currentDialogPanel.setVisible(false);
      homePanel.setVisible(true);
      friendPanelButton.setVisible(false);
      dialogTabsPanel.setVisible(false);
      isFriendPanelOpened = false;
      noConversationsPanel.setVisible(false);
      friendPanelMode();
    } else if (mode == Mode.HOME_PANEL) {

      homeButton.setIcon(homeButIcon);
      homeButton.addMouseListener(
          new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
              homeButton.setIcon(homeButIconEntered);
            }

            @Override
            public void mouseExited(MouseEvent e) {
              homeButton.setIcon(homeButIcon);
            }
          });

      friendPanelButton.setVisible(true);
      homePanel.setVisible(false);
      if (dialogTabArrayList.size() > 0) {
        dialogTabsPanel.setVisible(true);
      } else {
        noConversationsPanel.setVisible(true);
      }
      if (!(currentDialogPanel == null)) {
        currentDialogPanel.setVisible(true);
      }
      friendPanelButton.setVisible(true);
      repaint();
    }
  }