1 19 package org.lucane.applications.forum.gui; 20 21 import java.awt.BorderLayout ; 22 import java.awt.Dimension ; 23 import java.awt.GridLayout ; 24 import java.awt.event.ActionEvent ; 25 import java.awt.event.ActionListener ; 26 27 import javax.swing.JButton ; 28 import javax.swing.JPanel ; 29 import javax.swing.JTextField ; 30 31 import org.lucane.applications.forum.ForumPlugin; 32 import org.lucane.applications.forum.model.ForumMessage; 33 import org.lucane.client.Client; 34 import org.lucane.client.widgets.DialogBox; 35 import org.lucane.client.widgets.HTMLEditor; 36 import org.lucane.client.widgets.ManagedWindow; 37 38 public class MessageWindow extends ManagedWindow 39 implements ActionListener 40 { 41 private ForumPlugin plugin; 42 private MainWindow ui; 43 private String forum; 44 45 private JTextField title; 46 private HTMLEditor content; 47 private JButton btnPost; 48 private JButton btnClose; 49 50 private ForumMessage parent; 51 private boolean edit; 52 53 public MessageWindow(ForumPlugin plugin, MainWindow ui, String forum, ForumMessage parent, boolean edit) 54 { 55 super(plugin, plugin.getTitle()); 56 setName("messageWindow"); 57 this.plugin = plugin; 58 this.ui = ui; 59 this.forum = forum; 60 61 this.parent = parent; 62 this.edit = edit; 63 64 title = new JTextField (); 65 content = new HTMLEditor(); 66 67 btnPost = new JButton (plugin.tr("btn.post"), Client.getImageIcon("ok.png")); 68 btnPost.addActionListener(this); 69 btnClose = new JButton (plugin.tr("btn.close"), Client.getImageIcon("cancel.png")); 70 btnClose.addActionListener(this); 71 JPanel buttons = new JPanel (new BorderLayout ()); 72 JPanel container = new JPanel (new GridLayout (1, 2)); 73 container.add(btnPost); 74 container.add(btnClose); 75 buttons.add(container, BorderLayout.EAST); 76 77 78 if(parent != null) 79 title.setText(parent.getTitle()); 80 if(edit) 81 content.setText(parent.getContent()); 82 83 getContentPane().add(title, BorderLayout.NORTH); 84 getContentPane().add(content, BorderLayout.CENTER); 85 getContentPane().add(buttons, BorderLayout.SOUTH); 86 87 setPreferredSize(new Dimension (600, 400)); 88 } 89 90 public ForumMessage createForumMessage() 91 { 92 if(edit) 93 { 94 return new ForumMessage(parent.getId(), parent.getIdRef(), title.getText(), 95 parent.getDate(), parent.getAuthor(), content.getText(), 96 parent.isVisible()); 97 } 98 99 int idRef = -1; 100 if(parent != null) 101 idRef = parent.getId(); 102 103 return new ForumMessage(idRef, title.getText(), 104 Client.getInstance().getMyInfos().getName(), 105 content.getText()); 106 } 107 108 public void actionPerformed(ActionEvent ae) 109 { 110 if(ae.getSource() == btnPost) 111 { 112 try { 113 plugin.post(forum, createForumMessage()); 114 ui.updateMessages(plugin.getMessageList(ui.getForumList().getSelectedForum())); 115 dispose(); 116 } catch (Exception e) { 117 DialogBox.error(plugin.tr("err.unableToPostMessage") + e); 118 e.printStackTrace(); 119 } 120 } 121 else if(ae.getSource() == btnClose) 122 dispose(); 123 } 124 } | Popular Tags |