package gui; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; import businessLogic.AdminManager; import domain.HouseFeatures; import domain.Owner; import domain.RuralHouse; public class RequestNewHouseGUI extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel contentPane; private Owner owner; private JLabel lblCode ; private JTextField Code_f; private JLabel lblTown; private JTextField Town_f; private JLabel lblDescription; private JTextField description_f; private JLabel lblKitchen; private JTextField kitchens_f; private JLabel lblRooms; private JTextField rooms_f; private JLabel lblLivings; private JTextField lRooms_f; private JLabel lblParkings; private JTextField parkings_f; private JLabel lblBaths; private JTextField baths_f; private JButton btnRegister; private AdminManager am; /** * Create the frame. */ public RequestNewHouseGUI(Owner o) { am = new AdminManager(); this.setTitle("New House"); setBackground(Color.WHITE); this.getContentPane().setLayout(null); owner = o; setBounds(100, 100, 500, 583); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); lblCode = new JLabel("House Code:"); lblCode.setHorizontalAlignment(SwingConstants.RIGHT); Code_f = new JTextField(); Code_f.setColumns(10); lblTown = new JLabel("Town:"); lblTown.setHorizontalAlignment(SwingConstants.RIGHT); Town_f = new JTextField(); Town_f.setColumns(10); lblDescription = new JLabel("Description(optional):"); lblDescription.setHorizontalAlignment(SwingConstants.RIGHT); description_f = new JTextField(); description_f.setToolTipText(""); description_f.setHorizontalAlignment(SwingConstants.LEFT); description_f.setColumns(10); lblKitchen = new JLabel("Kitchens:"); lblKitchen.setHorizontalAlignment(SwingConstants.RIGHT); kitchens_f = new JTextField(); kitchens_f.setColumns(10); lblRooms = new JLabel("Rooms:"); lblRooms.setHorizontalAlignment(SwingConstants.RIGHT); rooms_f = new JTextField(); rooms_f.setColumns(10); lblLivings = new JLabel("Living rooms:"); lblLivings.setHorizontalAlignment(SwingConstants.RIGHT); lRooms_f = new JTextField(); lRooms_f.setColumns(10); lblParkings = new JLabel("Parkings:"); lblParkings.setHorizontalAlignment(SwingConstants.RIGHT); parkings_f = new JTextField(); parkings_f.setColumns(10); lblBaths = new JLabel("Baths:"); lblBaths.setHorizontalAlignment(SwingConstants.RIGHT); baths_f = new JTextField(); baths_f.setColumns(10); btnRegister = new JButton("Request registration"); btnRegister.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { RuralHouse rh = null; try { //TODO when the house is not added show a warning to the user. Method below returns a boolean stating that. rh = new RuralHouse(Code_f.getText(), owner, description_f.getText(), Town_f.getText() ,new HouseFeatures(Integer.parseInt(rooms_f.getText()), Integer.parseInt(kitchens_f.getText()), Integer.parseInt(baths_f.getText()), Integer.parseInt(lRooms_f.getText()), Integer.parseInt(parkings_f.getText())) ); } catch(NumberFormatException e ){ e.printStackTrace(); } am.addAdditionRequest(rh); } }); GroupLayout gl_contentPane = new GroupLayout(contentPane); gl_contentPane.setHorizontalGroup( gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(140) .addComponent(btnRegister)) .addGroup(gl_contentPane.createSequentialGroup() .addContainerGap() .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblTown, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) .addGap(18) .addComponent(Town_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING, false) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblLivings) .addGap(18) .addComponent(lRooms_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblCode) .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(Code_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblBaths, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) .addGap(18) .addComponent(baths_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))) .addGap(29) .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addComponent(lblDescription) .addComponent(description_f, GroupLayout.PREFERRED_SIZE, 164, GroupLayout.PREFERRED_SIZE))) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblKitchen, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) .addGap(18) .addComponent(kitchens_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(lblRooms, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) .addGap(18) .addComponent(rooms_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) .addGroup(gl_contentPane.createSequentialGroup() .addGap(18) .addComponent(lblParkings, GroupLayout.PREFERRED_SIZE, 70, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.UNRELATED) .addComponent(parkings_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))) .addContainerGap(97, Short.MAX_VALUE)) ); gl_contentPane.setVerticalGroup( gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(20) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(63) .addComponent(lblDescription) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(description_f, GroupLayout.PREFERRED_SIZE, 37, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addGap(60) .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE) .addComponent(lblCode) .addComponent(Code_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE) .addComponent(Town_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(lblTown)) .addGap(18) .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addComponent(lblLivings) .addComponent(lRooms_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))) .addGap(63) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(3) .addComponent(lblRooms)) .addComponent(rooms_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(kitchens_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createSequentialGroup() .addGap(3) .addComponent(lblKitchen))) .addPreferredGap(ComponentPlacement.RELATED, 7, Short.MAX_VALUE) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(3) .addComponent(lblBaths)) .addComponent(baths_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(45) .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE) .addComponent(lblParkings) .addComponent(parkings_f, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addGap(88) .addComponent(btnRegister) .addGap(54)) ); contentPane.setLayout(gl_contentPane); } }