Research Article

Optimizing Negotiation Conflict in the Cloud Service Negotiation Framework Using Probabilistic Decision Making Model

Sourcecode 6

CloudSellerGuiImpl.java.
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");