| package cloudTrading.seller; |
| import jade.gui.TimeChooser; |
| import java.awt.; |
| import java.awt.event.; |
| import javax.swing.; |
| import javax.swing.border.; |
| import java.util.Date; |
| public class CloudSellerGuiImpl extends JFrame implements CloudSellerGui |
|
| public void setAgent(CloudSellerAgent a) |
| myAgent = a; |
| setTitle(myAgent.getName()); |
| public CloudSellerGuiImpl() |
| super(); |
| addWindowListener(new WindowAdapter() |
| public void windowClosing(WindowEvent e) |
| myAgent.doDelete(); ); |
| public void actionPerformed(ActionEvent e) |
| Date d = deadline; |
| if (d == null) |
| d = new Date(); |
| TimeChooser tc = new TimeChooser(d); |
| if (tc.showEditTimeDlg(CloudSellerGuiImpl.this) == TimeChooser.OK) |
| deadline = tc.getDate(); |
| deadlineTF.setText(deadline.toString()); ); |
| gridBagConstraints = new GridBagConstraints(); |
| gridBagConstraints.gridx = 3; |
| gridBagConstraints.gridy = 2; |
| gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; |
| gridBagConstraints.insets = new Insets(5, 3, 0, 3); |
| rootPanel.add(setDeadlineB, gridBagConstraints); |
| rootPanel.setBorder(new BevelBorder(BevelBorder.LOWERED)); |
| getContentPane().add(rootPanel, BorderLayout.NORTH); |
| logTA = new JTextArea(); |
| logTA.setEnabled(false); |
| JScrollPane jsp = new JScrollPane(logTA); |
| jsp.setMinimumSize(new Dimension(300, 180)); |
| jsp.setPreferredSize(new Dimension(300, 180)); |
| JPanel p = new JPanel(); |
| p.setBorder(new BevelBorder(BevelBorder.LOWERED)); |
| p.add(jsp); |
| getContentPane().add(p, BorderLayout.CENTER); |
| p = new JPanel(); |
| sellB = new JButton("Sell"); |
| sellB.addActionListener(new ActionListener() |
| public void actionPerformed(ActionEvent e) |
| String title = titleTF.getText(); |
| float desiredPrice = -1; |
| float minPrice = -1; |
| if (title != null && title.length() > 0) |
| if (deadline != null && deadline.getTime() > System.currentTimeMillis()) |
| desiredPrice = Float.parseFloat(desiredPriceTF.getText()); |
| minPrice = Float.parseFloat(minPriceTF.getText()); |
| if (minPrice <= desiredPrice) |
| myAgent.putForSale(title, desiredPrice, minPrice, deadline); |
| notifyUser("PUT FOR SALE: "+title+" between "+desiredPrice+" and "+minPrice+" by "+deadline); |
| else |
| JOptionPane.showMessageDialog(CloudSellerGuiImpl.this, "Min price must be cheaper than best price", "WARNING", |
| JOptionPane.WARNING_MESSAGE); |
| else |
| JOptionPane.showMessageDialog(CloudSellerGuiImpl.this, "Invalid deadline", "WARNING", |
| JOptionPane.WARNING_MESSAGE); |
| else |
| JOptionPane.showMessageDialog(CloudSellerGuiImpl.this, "No cloud title specified", "WARNING", |
| JOptionPane.WARNING_MESSAGE); ); |
| resetB = new JButton("Reset"); |
| resetB.addActionListener(new ActionListener() |
| public void actionPerformed(ActionEvent e) |
| titleTF.setText(""); |
| desiredPriceTF.setText(""); |
| minPriceTF.setText(""); |
| deadlineTF.setText(""); |
| deadline = null; ); |
| exitB = new JButton("Exit"); |
| exitB.addActionListener(new ActionListener() |
| public void actionPerformed(ActionEvent e) |
| myAgent.doDelete(); ); |
| sellB.setPreferredSize(resetB.getPreferredSize()); |
| exitB.setPreferredSize(resetB.getPreferredSize()); |
| p.setBorder(new BevelBorder(BevelBorder.LOWERED)); |
| getContentPane().add(p, BorderLayout.SOUTH); |
| setResizable(false); |
|
| public void notifyUser(String message) |
| logTA.append(message+"∖n"); |
|