tag:blogger.com,1999:blog-18646242.post-1131119095047440432005-11-04T07:32:00.001-08:002005-11-04T07:44:55.053-08:00Java Hindi office suite: InternetExplorerContinuing my last post, this contains the code of a Java InternetExplorer replacement. This is a simple web browser with hindi menus and dialogs. Has no support for frames, javascript or applets. Save is not yet correctly imlemented(saves only the html part,not the embedded pictures or other resources). That said here is your code for IExplorer.java<br /> <br />//IExplorer.java<br />/*<br /> * Created on Dec 16, 2004<br /> */<br />package name.shabda.office;<br /><br />import java.awt.BorderLayout;<br />import java.awt.Dimension;<br />import java.awt.GridLayout;<br />import java.awt.event.ActionEvent;<br />import java.awt.event.ActionListener;<br />import java.awt.event.WindowAdapter;<br />import java.awt.event.WindowEvent;<br />import java.io.File;<br />import java.io.FileOutputStream;<br />import java.io.FileReader;<br />import java.io.IOException;<br />import java.net.MalformedURLException;<br />import java.net.URL;<br />import java.util.Hashtable;<br />import java.util.Stack;<br /><br />import javax.swing.Action;<br />import javax.swing.ImageIcon;<br />import javax.swing.JButton;<br />import javax.swing.JEditorPane;<br />import javax.swing.JFileChooser;<br />import javax.swing.JFrame;<br />import javax.swing.JLabel;<br />import javax.swing.JMenu;<br />import javax.swing.JMenuBar;<br />import javax.swing.JMenuItem;<br />import javax.swing.JPanel;<br />import javax.swing.JScrollPane;<br />import javax.swing.JTextField;<br />import javax.swing.JToolBar;<br />import javax.swing.event.HyperlinkEvent;<br />import javax.swing.event.HyperlinkListener;<br />import javax.swing.filechooser.FileFilter;<br />import javax.swing.text.DefaultEditorKit;<br />import javax.swing.text.JTextComponent;<br />import javax.swing.text.html.HTMLEditorKit;<br /><br />/**<br /> * @author dicky<br /> */<br />public class IExplorer extends JFrame {<br /> JEditorPane theView;//the editor where the page is displayed<br /> JTextField add;//address bar<br /> Stack backPages;//stack which contains list of pages to which you can go back<br /> Stack forwardPages;//list of pages to which you can forward<br /> HTMLEditorKit editor;//editor for saving and opening<br /> private JMenuItem back;//the back menu item<br /> private JMenuItem forward;//the forward menu item<br /> private JButton backButton;<br /> private JButton forwardButton;<br /> <br /> Hashtable actions;//stores the actions<br /> <br /> /**<br /> * <br /> */<br /> public IExplorer() {<br /> editor=new HTMLEditorKit();<br /> getContentPane().setLayout(new BorderLayout());<br /> theView=getEditor();<br /> createActionTable(theView);//create action table from where we can add the actions to menus<br /> JScrollPane pane=new JScrollPane(theView);<br /> getContentPane().add(pane,BorderLayout.CENTER);<br /> getContentPane().add(getNonEditor(),BorderLayout.NORTH);<br /> addHtmlListener();<br /> setJMenuBar(getMenu()); <br /> backPages=new Stack();<br /> forwardPages=new Stack();<br /> try {<br /> setPage(new URL("http://www.aksharmala.com/")); //$NON-NLS-1$<br /> } catch (MalformedURLException e) {<br /> e.printStackTrace();<br /> }<br /> addWindowListener(new WindowAdapter() {<br /> public void windowClosing(WindowEvent e) {<br /> System.exit(0); <br /> } <br /> <br /> });<br /> }<br /> /**<br /> * This method registers a html listener on the document.<br /> * */<br /> public void addHtmlListener(){<br /> theView.addHyperlinkListener(new HyperlinkListener() {<br /><br /> public void hyperlinkUpdate(HyperlinkEvent e) {<br /> if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {<br /> URL url;<br /> try {<br /> url = new URL(add.getText());//the current page<br /> backPages.push(url);//add current page to the stack so you can go back there<br /> url=e.getURL();<br /> forwardPages.clear();<br /> setPage(url);<br /> } catch (MalformedURLException e1) {<br /> e1.printStackTrace();<br /> }<br /> }<br /> }});<br /> }<br /> public void setPage(URL s) {<br /> try {<br /> theView.setPage(s);<br /> add.setText(s.toString());<br /> updateMenus();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br /> } <br /> public JMenuBar getMenu() {<br /> JMenuBar menu=new JMenuBar();<br /> JMenu file = new JMenu(Messages.getString("NoteTab.4")); //$NON-NLS-1$<br /> JMenuItem open = new JMenuItem(Messages.getString("NoteTab.7")); //$NON-NLS-1$<br /> JMenuItem save = new JMenuItem(Messages.getString("NoteTab.6")); //$NON-NLS-1$<br /> JMenuItem print = new JMenuItem(Messages.getString("NoteTab.8")); //$NON-NLS-1$<br /> open.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> open();<br /> <br /> }});<br /> save.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> saveAs();<br /> <br /> }});<br /> file.add(open);<br /> file.add(save);<br /> file.add(print);<br /> menu.add(file);<br /> <br /> JMenu edit=new JMenu(Messages.getString("NoteTab.19")); //$NON-NLS-1$<br /> JMenuItem cut = new JMenuItem(Messages.getString("NoteTab.20")); //$NON-NLS-1$<br /> cut.addActionListener(getActionByName(DefaultEditorKit.cutAction));<br /> JMenuItem copy = new JMenuItem(Messages.getString("NoteTab.21")); //$NON-NLS-1$<br /> copy.addActionListener(getActionByName(DefaultEditorKit.copyAction));<br /> JMenuItem paste = new JMenuItem(Messages.getString("NoteTab.22")); //$NON-NLS-1$<br /> paste.addActionListener(getActionByName(DefaultEditorKit.pasteAction));<br /> JMenuItem selectAll = new JMenuItem(Messages.getString("NoteTab.23")); //$NON-NLS-1$<br /> selectAll<br /> .addActionListener(getActionByName(DefaultEditorKit.selectAllAction));<br /> edit.add(cut);<br /> edit.add(copy);<br /> edit.add(paste);<br /> edit.add(selectAll);<br /> menu.add(edit);<br /> JMenu navigate=new JMenu(Messages.getString("IE.2")); //$NON-NLS-1$<br /> back = new JMenuItem(Messages.getString("IE.3")); //$NON-NLS-1$<br /> back.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> URL url;<br /> try {<br /> url=new URL(add.getText());//current page<br /> forwardPages.push(url);<br /> url=(URL) backPages.pop();<br /> setPage(url);<br /> } catch (MalformedURLException e1) {<br /> e1.printStackTrace();<br /> }<br /> }});<br /> forward = new JMenuItem(Messages.getString("IE.4")); //$NON-NLS-1$<br /> forward.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> URL url;<br /> try {<br /> url=new URL(add.getText());//current page<br /> backPages.push(url);<br /> url=(URL) forwardPages.pop();<br /> setPage(url);<br /> } catch (MalformedURLException e1) {<br /> e1.printStackTrace();<br /> }<br /> }});<br /> JMenuItem home=new JMenuItem(Messages.getString("IE.5")); //$NON-NLS-1$<br /> navigate.add(back);<br /> navigate.add(forward);<br /> navigate.add(home);<br /> menu.add(navigate);<br /> JMenu help=new JMenu(Messages.getString("NoteTab.44")); //$NON-NLS-1$<br /> menu.add(help);<br /> return menu;<br /> <br /> }<br /> public JPanel getNonEditor() {<br /> JPanel p=new JPanel();<br /> p.setLayout(new GridLayout(2,1));<br /> p.add(getToolBar2());<br /> p.add(getToolBar());<br /> return p;<br /> }<br /> public JToolBar getToolBar2() {<br /> JToolBar tools=new JToolBar();<br /> backButton=new JButton();<br /> forwardButton=new JButton();<br /> ImageIcon icon=createImageIcon("../images/back.gif", null);<br /> backButton.setIcon(icon);<br /> icon=createImageIcon("../images/forward.gif", null);<br /> forwardButton.setIcon(icon);<br /> JButton open=new JButton();<br /> icon=createImageIcon("../images/open.gif", null);<br /> open.setIcon(icon);<br /> JButton save=new JButton();<br /> icon=createImageIcon("../images/save.gif", null);<br /> save.setIcon(icon);<br /> JButton cut=new JButton();<br /> icon=createImageIcon("../images/cut.gif", null);<br /> cut.setIcon(icon);<br /> JButton copy=new JButton();<br /> icon=createImageIcon("../images/copy.gif", null);<br /> copy.setIcon(icon);<br /> JButton paste=new JButton();<br /> icon=createImageIcon("../images/paste.gif", null);<br /> paste.setIcon(icon);<br /> open.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> open();<br /> <br /> }});<br /> save.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> saveAs();<br /> <br /> }});<br /> cut.addActionListener(getActionByName(DefaultEditorKit.cutAction));<br /> copy.addActionListener(getActionByName(DefaultEditorKit.copyAction));<br /> paste.addActionListener(getActionByName(DefaultEditorKit.pasteAction));<br /> backButton.addActionListener(new ActionListener() {<br /><br /> public void actionPerformed(ActionEvent e) {<br /> URL url;<br /> try {<br /> url=new URL(add.getText());//current page<br /> forwardPages.push(url);<br /> url=(URL) backPages.pop();<br /> setPage(url);shabdahttp://www.blogger.com/profile/07961528262493927188noreply@blogger.com