Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * The MIT License
- * Copyright (c) 2014-2016 Ilkka Seppälä
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
- package com.iluwatar.model.view.presenter;
- import java.awt.Color;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTextArea;
- import javax.swing.JTextField;
- /**
- * This class is the GUI implementation of the View component in the Model-View-Presenter pattern.
- */
- public class FileSelectorJFrame extends JFrame implements FileSelectorView, ActionListener {
- /**
- * Default serial version ID.
- */
- private static final long serialVersionUID = 1L;
- /**
- * The "OK" button for loading the file.
- */
- private JButton ok;
- /**
- * The cancel button.
- */
- private JButton cancel;
- /**
- * The information label.
- */
- private JLabel info;
- /**
- * The contents label.
- */
- private JLabel contents;
- /**
- * The text field for giving the name of the file that we want to open.
- */
- private JTextField input;
- /**
- * A text area that will keep the contents of the file opened.
- */
- private JTextArea area;
- /**
- * The panel that will hold our widgets.
- */
- private JPanel panel;
- /**
- * The Presenter component that the frame will interact with
- */
- private FileSelectorPresenter presenter;
- /**
- * The name of the file that we want to read it's contents.
- */
- private String fileName;
- /**
- * Constructor.
- */
- public FileSelectorJFrame() {
- super("File Loader");
- this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- this.setLayout(null);
- this.setBounds(100, 100, 500, 200);
- /*
- * Add the panel.
- */
- this.panel = new JPanel();
- panel.setLayout(null);
- this.add(panel);
- panel.setBounds(0, 0, 500, 200);
- panel.setBackground(Color.LIGHT_GRAY);
- /*
- * Add the info label.
- */
- this.info = new JLabel("File Name :");
- this.panel.add(info);
- info.setBounds(30, 10, 100, 30);
- /*
- * Add the contents label.
- */
- this.contents = new JLabel("File contents :");
- this.panel.add(contents);
- this.contents.setBounds(30, 100, 120, 30);
- /*
- * Add the text field.
- */
- this.input = new JTextField(100);
- this.panel.add(input);
- this.input.setBounds(150, 15, 200, 20);
- /*
- * Add the text area.
- */
- this.area = new JTextArea(100, 100);
- JScrollPane pane = new JScrollPane(area);
- pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
- this.panel.add(pane);
- this.area.setEditable(false);
- pane.setBounds(150, 100, 250, 80);
- /*
- * Add the OK button.
- */
- this.ok = new JButton("OK");
- this.panel.add(ok);
- this.ok.setBounds(250, 50, 100, 25);
- this.ok.addActionListener(this);
- /*
- * Add the cancel button.
- */
- this.cancel = new JButton("Cancel");
- this.panel.add(this.cancel);
- this.cancel.setBounds(380, 50, 100, 25);
- this.cancel.addActionListener(this);
- this.presenter = null;
- this.fileName = null;
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if (this.ok.equals(e.getSource())) {
- this.fileName = this.input.getText();
- presenter.fileNameChanged();
- presenter.confirmed();
- } else if (this.cancel.equals(e.getSource())) {
- presenter.cancelled();
- }
- }
- @Override
- public void open() {
- this.setVisible(true);
- }
- @Override
- public void close() {
- this.dispose();
- }
- @Override
- public boolean isOpened() {
- return this.isVisible();
- }
- @Override
- public void setPresenter(FileSelectorPresenter presenter) {
- this.presenter = presenter;
- }
- @Override
- public FileSelectorPresenter getPresenter() {
- return this.presenter;
- }
- @Override
- public void setFileName(String name) {
- this.fileName = name;
- }
- @Override
- public String getFileName() {
- return this.fileName;
- }
- @Override
- public void showMessage(String message) {
- JOptionPane.showMessageDialog(null, message);
- }
- @Override
- public void displayData(String data) {
- this.area.setText(data);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement