package dms.os.ie;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.border.Border;
import org.jdesktop.jdic.browser.WebBrowser;
import dms.vm.Environment;
import dms.vm.VM;
public class TabbedBrowser extends JFrame {
public static void main(String[] args) throws MalformedURLException {
TabbedBrowser w = new TabbedBrowser();
}
private static JTabbedPane pane = new JTabbedPane(JTabbedPane.BOTTOM,
JTabbedPane.WRAP_TAB_LAYOUT);
public TabbedBrowser() throws MalformedURLException {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Throwable t) {
}
this.setVisible(true);
this.setSize(800, 600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(pane);
pane.setBorder(new Border() {
@Override
public void paintBorder(Component c, Graphics g, int x, int y,
int width, int height) {
}
@Override
public boolean isBorderOpaque() {
return false;
}
@Override
public Insets getBorderInsets(Component c) {
return new Insets(0, 0, 0, 0);
}
});
WebBrowser w1 = new WebBrowser(new URL("http://www.google.com"));
w1.setLocation(0, -100);
JPanel console = new JPanel(new BorderLayout());
final JTextArea outp=new JTextArea();
console.add(outp);
JPanel inp = new JPanel(new BorderLayout());
console.add(inp, BorderLayout.SOUTH);
final JTextField field = new JTextField();
inp.add(field);
JButton run = new JButton("Run");
Environment.getInstance().put("TabbedBrowser", Environment.getInstance(), this);
run.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Object result=null;
try {
result = VM.eval(field.getText(), "console");
} catch (Throwable t) {
result=t;
}
outp.append(""+result+"\n");
}
});
inp.add(run, BorderLayout.EAST);
pane.add("Console", console);
}
public void addTab(String title, String url) throws MalformedURLException {
pane.add(title, new WebBrowser(new URL(url)));
}
public void closeTab(int i) {
pane.remove(i);
}
public void renameTab(int i,String name) {
pane.setTitleAt(i,name);
}
}