import javax.swing.*;
import java.awt.*;

/** BrowserView - sørger for layout af knapper, labels og textfelt
 * 	@author Søren S Munk (u001614) */
public class BrowserView extends JFrame {

    public final JButton HOME;
    public final JButton BACK;
    public final JButton FORWARD;
    public final JButton QUIT;
    public final JButton UP;
    public final JButton DOWN;
    public final JButton OPEN;

    public final JButton SF;

    //Mine tilføjelser
    public final JLabel title;
    public final JLabel status;
    public final JTextField addr;
    //slut

    /** Browser konstruktion
	 *	konstruerer et Browservindue med
     * 	(1) kontrol- og scrollknapper
     * 	(2) status,titel,location info
     * 	(3) delvindue med display
     * 	@param width vinduets bredde
     * 	@param height vinduets højde
     * 	@param d display komponenten
     */
    BrowserView(int width, int height, BrowserDisplay display) {
		title = new JLabel("");
		status = new JLabel("");
		addr = new JTextField(40);
			
		JPanel top = new JPanel( new GridLayout(3,1) );
		JPanel topButtons = new JPanel( new FlowLayout() );

		topButtons.add(BACK = new JButton("Back"));
		topButtons.add(FORWARD = new JButton("Forward"));
		topButtons.add(HOME = new JButton("Home"));
		topButtons.add(QUIT = new JButton("Quit"));
		
		JPanel topTitle = new JPanel( new FlowLayout() );
		topTitle.add(title);
		
		JPanel topAddr = new JPanel( new FlowLayout() );
		topAddr.add(addr); 
		topAddr.add(OPEN = new JButton("Open location"));

		top.add(topButtons); 
		top.add(topTitle);  
		top.add(topAddr);
		
		JPanel bottom = new JPanel( new GridLayout(3,1) );
		
		JPanel bottomStatus = new JPanel( new FlowLayout() );
		bottomStatus.add(status);

		JPanel bottomButtons = new JPanel( new FlowLayout() );
		bottomButtons.add(UP = new JButton("Scroll up"));
		bottomButtons.add(DOWN = new JButton("Scroll down"));
		bottomButtons.add(SF = new JButton("Show forward"));
		
		bottom.add(bottomStatus);
		bottom.add(bottomButtons);

		//Hele browser vinduet
		Container c = getContentPane();
		c.setLayout( new BorderLayout() );
		c.add(top,    	BorderLayout.NORTH);
		c.add(bottom, 	BorderLayout.SOUTH);
		c.add(display,	BorderLayout.CENTER);

		setTitle("dIntProg Browser: u001614");
		setSize(width, height);
		setVisible(true);
    }
    
    /** showStatus viser en statustekst i browservinduet 
     *	@param s tekst der skal vises */
    public void showStatus(String s) { status.setText(s); }
    
    /** showTitle viser titlen på et htmldokument i browservinduet
     *	@param s titlen der skal vises */
    public void showTitle(String s) { title.setText("Title: "+s); }
    
    /** showLocation viser en url i browservinduets locationfelt
     *	@param s den url-tekst der skal vises */
    public void showLocation(String s) {
		addr.setText(s);
    }
    
    /** getLocation returnerer den url (i tekstform) der vises i
     *	browservinduet
     *	@return url-teksten der fremvises i location-feltet */
    public String getLocationText() {
		return( addr.getText() );
    }
    
}
