Skip to content

Commit f062605

Browse files
committed
that first commit
1 parent 96fe1d9 commit f062605

14 files changed

+4503
-0
lines changed

AuctionServer.java

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
import java.io.IOException;
3+
import java.net.ServerSocket;
4+
import java.net.Socket;
5+
6+
/**
7+
*
8+
* @author Hishan Indrajith
9+
*/
10+
public class AuctionServer {
11+
12+
public static final int BASE_PORT = 2000;
13+
14+
public static void main(String [] args){
15+
//ServerController controller = new ServerController();
16+
StockDB stockDataStruct = new StockDB();
17+
OfferDB offerDatastruct = new OfferDB();
18+
ServerController guiController = new ServerController();
19+
Thread guiThread = new Thread(guiController);
20+
guiThread.start();
21+
AuctionServer server = new AuctionServer();
22+
try {
23+
server.serverLoop();
24+
} catch (IOException ex) {
25+
}
26+
}
27+
28+
public void serverLoop() throws IOException {
29+
ServerSocket serverSocket = new ServerSocket(BASE_PORT);
30+
while(true) {
31+
Socket socket = serverSocket.accept(); // if error must close the socket
32+
Connection newConnection = new Connection(socket);
33+
newConnection.startThread();
34+
}
35+
}
36+
37+
38+
39+
}

ChangePriceController.java

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
2+
import java.awt.event.ActionEvent;
3+
import java.awt.event.ActionListener;
4+
import java.util.Date;
5+
import javax.swing.JOptionPane;
6+
7+
8+
public class ChangePriceController {
9+
private ChangePriceScreen screen;
10+
11+
public ChangePriceController() {
12+
screen = new ChangePriceScreen();
13+
screen.setVisible(true);
14+
screen.setResizable(false);
15+
screen.setSize(817,438);
16+
screen.pack();
17+
screen.setLocationRelativeTo(null);
18+
screen.getSearchbtn().addActionListener(new ActionListener() {
19+
@Override
20+
public void actionPerformed(ActionEvent e) {
21+
searchBtnAction();
22+
}
23+
});
24+
screen.getSubmitbtn().addActionListener(new ActionListener() {
25+
@Override
26+
public void actionPerformed(ActionEvent e) {
27+
submitBtnAction();
28+
}
29+
});
30+
}
31+
32+
private void searchBtnAction(){
33+
String symbol = screen.getSearchtxt().getText();
34+
screen.getSymbolTxt().setText(symbol);
35+
if(!StockDB.isExist(symbol)){
36+
screen.getNameTxt().setText("This Stock Item is Unavailable");
37+
screen.getNameTxt().setForeground(new java.awt.Color(255,204,204));
38+
}else{
39+
screen.getNameTxt().setText(StockDB.getStockItem(symbol).getSecurityName());
40+
screen.getOldPriceTxt().setText(""+StockDB.getStockItem(symbol).getPrice());
41+
screen.getNewPricetxt().setEnabled(true);
42+
screen.getSubmitbtn().setEnabled(true);
43+
}
44+
}
45+
46+
private void submitBtnAction(){
47+
try{
48+
// get new price
49+
double newPrice=Double.parseDouble(screen.getNewPricetxt().getText());
50+
//set price of Map
51+
StockDB.setPrice(screen.getSymbolTxt().getText(), newPrice);
52+
Offer change =new Offer("By Server", screen.getSymbolTxt().getText(), new Date(), newPrice); //add new change as an offer
53+
OfferDB.addOffer(change); //add the new change to offer list
54+
screen.dispose();
55+
}catch(NumberFormatException e){
56+
JOptionPane.showMessageDialog(null, "Price entered is invalid"); //if error value given as input
57+
}
58+
}
59+
60+
}

ChangePriceScreen.java

+221
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
1+
2+
import javax.swing.JButton;
3+
import javax.swing.JFrame;
4+
import javax.swing.JLabel;
5+
import javax.swing.JTextField;
6+
7+
8+
public class ChangePriceScreen extends JFrame{
9+
10+
private javax.swing.JLabel jLabel1;
11+
private javax.swing.JLabel jLabel2;
12+
private javax.swing.JLabel jLabel5;
13+
private javax.swing.JPanel jPanel1;
14+
private javax.swing.JPanel jPanel2;
15+
private javax.swing.JPanel jPanel3;
16+
private javax.swing.JLabel nameTxt;
17+
private javax.swing.JTextField newPricetxt;
18+
private javax.swing.JLabel oldPriceTxt;
19+
private javax.swing.JButton searchbtn;
20+
private javax.swing.JTextField searchtxt;
21+
private javax.swing.JButton submitbtn;
22+
private javax.swing.JLabel symbolTxt;
23+
24+
public ChangePriceScreen() {
25+
initComponents();
26+
}
27+
private void initComponents() {
28+
29+
jPanel1 = new javax.swing.JPanel();
30+
jPanel2 = new javax.swing.JPanel();
31+
jLabel1 = new javax.swing.JLabel();
32+
searchtxt = new javax.swing.JTextField();
33+
searchbtn = new javax.swing.JButton();
34+
jLabel2 = new javax.swing.JLabel();
35+
symbolTxt = new javax.swing.JLabel();
36+
oldPriceTxt = new javax.swing.JLabel();
37+
jLabel5 = new javax.swing.JLabel();
38+
nameTxt = new javax.swing.JLabel();
39+
newPricetxt = new javax.swing.JTextField();
40+
submitbtn = new javax.swing.JButton();
41+
jPanel3 = new javax.swing.JPanel();
42+
43+
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
44+
setTitle("Change Price");
45+
46+
jPanel1.setBackground(new java.awt.Color(102, 102, 102));
47+
48+
jPanel2.setBackground(new java.awt.Color(0, 0, 0));
49+
50+
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
51+
jLabel1.setForeground(new java.awt.Color(204, 255, 204));
52+
jLabel1.setText("Search Symbol");
53+
54+
searchtxt.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
55+
56+
searchbtn.setBackground(new java.awt.Color(204, 255, 204));
57+
searchbtn.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
58+
searchbtn.setText("Search");
59+
60+
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
61+
jPanel2.setLayout(jPanel2Layout);
62+
jPanel2Layout.setHorizontalGroup(
63+
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
64+
.addGroup(jPanel2Layout.createSequentialGroup()
65+
.addGap(47, 47, 47)
66+
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 172, javax.swing.GroupLayout.PREFERRED_SIZE)
67+
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
68+
.addComponent(searchtxt, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
69+
.addGap(35, 35, 35)
70+
.addComponent(searchbtn, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE)
71+
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
72+
);
73+
jPanel2Layout.setVerticalGroup(
74+
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
75+
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
76+
.addContainerGap(25, Short.MAX_VALUE)
77+
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
78+
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
79+
.addComponent(searchtxt, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
80+
.addComponent(searchbtn, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
81+
.addGap(21, 21, 21))
82+
);
83+
84+
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
85+
jLabel2.setForeground(new java.awt.Color(255, 255, 153));
86+
jLabel2.setText("New Price :");
87+
88+
symbolTxt.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
89+
symbolTxt.setForeground(new java.awt.Color(51, 255, 51));
90+
symbolTxt.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
91+
symbolTxt.setText("");
92+
93+
oldPriceTxt.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
94+
oldPriceTxt.setForeground(new java.awt.Color(102, 255, 204));
95+
oldPriceTxt.setText("");
96+
97+
jLabel5.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
98+
jLabel5.setForeground(new java.awt.Color(255, 255, 153));
99+
jLabel5.setText("Old Price :");
100+
101+
nameTxt.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
102+
nameTxt.setForeground(new java.awt.Color(204, 255, 204));
103+
nameTxt.setText("");
104+
105+
newPricetxt.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
106+
newPricetxt.setEnabled(false);
107+
108+
submitbtn.setBackground(new java.awt.Color(204, 255, 204));
109+
submitbtn.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
110+
submitbtn.setText("Submit");
111+
submitbtn.setEnabled(false);
112+
113+
jPanel3.setBackground(new java.awt.Color(0, 0, 0));
114+
115+
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
116+
jPanel3.setLayout(jPanel3Layout);
117+
jPanel3Layout.setHorizontalGroup(
118+
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
119+
.addGap(0, 0, Short.MAX_VALUE)
120+
);
121+
jPanel3Layout.setVerticalGroup(
122+
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
123+
.addGap(0, 34, Short.MAX_VALUE)
124+
);
125+
126+
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
127+
jPanel1.setLayout(jPanel1Layout);
128+
jPanel1Layout.setHorizontalGroup(
129+
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
130+
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
131+
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
132+
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
133+
.addContainerGap(38, Short.MAX_VALUE)
134+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
135+
.addGroup(jPanel1Layout.createSequentialGroup()
136+
.addGap(63, 63, 63)
137+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
138+
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 121, javax.swing.GroupLayout.PREFERRED_SIZE)
139+
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
140+
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
141+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
142+
.addGroup(jPanel1Layout.createSequentialGroup()
143+
.addComponent(newPricetxt, javax.swing.GroupLayout.PREFERRED_SIZE, 311, javax.swing.GroupLayout.PREFERRED_SIZE)
144+
.addGap(40, 40, 40)
145+
.addComponent(submitbtn, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE))
146+
.addComponent(oldPriceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 487, javax.swing.GroupLayout.PREFERRED_SIZE)))
147+
.addGroup(jPanel1Layout.createSequentialGroup()
148+
.addComponent(symbolTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 186, javax.swing.GroupLayout.PREFERRED_SIZE)
149+
.addGap(18, 18, 18)
150+
.addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 538, javax.swing.GroupLayout.PREFERRED_SIZE)))
151+
.addGap(37, 37, 37))
152+
);
153+
jPanel1Layout.setVerticalGroup(
154+
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
155+
.addGroup(jPanel1Layout.createSequentialGroup()
156+
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
157+
.addGap(27, 27, 27)
158+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
159+
.addComponent(symbolTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
160+
.addComponent(nameTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
161+
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
162+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
163+
.addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
164+
.addComponent(oldPriceTxt, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE))
165+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
166+
.addGroup(jPanel1Layout.createSequentialGroup()
167+
.addGap(29, 29, 29)
168+
.addComponent(submitbtn, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE))
169+
.addGroup(jPanel1Layout.createSequentialGroup()
170+
.addGap(18, 18, 18)
171+
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
172+
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
173+
.addComponent(newPricetxt, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE))))
174+
.addGap(36, 36, 36)
175+
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
176+
);
177+
178+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
179+
getContentPane().setLayout(layout);
180+
layout.setHorizontalGroup(
181+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
182+
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
183+
);
184+
layout.setVerticalGroup(
185+
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
186+
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
187+
);
188+
189+
pack();
190+
}
191+
192+
public JLabel getNameTxt() {
193+
return nameTxt;
194+
}
195+
196+
public JTextField getNewPricetxt() {
197+
return newPricetxt;
198+
}
199+
200+
public JLabel getOldPriceTxt() {
201+
return oldPriceTxt;
202+
}
203+
204+
public JButton getSearchbtn() {
205+
return searchbtn;
206+
}
207+
208+
public JTextField getSearchtxt() {
209+
return searchtxt;
210+
}
211+
212+
public JButton getSubmitbtn() {
213+
return submitbtn;
214+
}
215+
216+
public JLabel getSymbolTxt() {
217+
return symbolTxt;
218+
}
219+
220+
221+
}

0 commit comments

Comments
 (0)