|
What this is
Other links
The source code/* * QuickNotepad.java * part of the QuickNotepad plugin for the jEdit text editor * Copyright (C) 2001 John Gellene * jgellene@nyc.rr.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id: QuickNotepad.java,v 1.8 2004/04/30 20:23:08 spestov Exp $ */ // from Java: import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.Vector; // from Swing: import javax.swing.*; import javax.swing.event.*; // from jEdit: import org.gjt.sp.jedit.*; import org.gjt.sp.jedit.gui.*; import org.gjt.sp.jedit.io.*; import org.gjt.sp.jedit.msg.PropertiesChanged; import org.gjt.sp.jedit.msg.ViewUpdate; import org.gjt.sp.util.Log; public class QuickNotepad extends JPanel implements EBComponent, QuickNotepadActions, DefaultFocusComponent { private String filename; private String defaultFilename; private View view; private boolean floating; private QuickNotepadTextArea textArea; private QuickNotepadToolPanel toolPanel; // // Constructor // public QuickNotepad(View view, String position) { super(new BorderLayout()); this.view = view; this.floating = position.equals(DockableWindowManager.FLOATING); if(jEdit.getSettingsDirectory() != null) { this.filename = jEdit.getProperty( QuickNotepadPlugin.OPTION_PREFIX + "filepath"); if(this.filename == null || this.filename.length() == 0) { this.filename = new String(jEdit.getSettingsDirectory() + File.separator + "qn.txt"); jEdit.setProperty( QuickNotepadPlugin.OPTION_PREFIX + "filepath", this.filename); } this.defaultFilename = this.filename; } this.toolPanel = new QuickNotepadToolPanel(this); add(BorderLayout.NORTH, this.toolPanel); if(floating) this.setPreferredSize(new Dimension(500, 250)); textArea = new QuickNotepadTextArea(); textArea.setFont(QuickNotepadOptionPane.makeFont()); textArea.addKeyListener(new KeyHandler()); JScrollPane pane = new JScrollPane(textArea); add(BorderLayout.CENTER, pane); readFile(); } public void focusOnDefaultComponent() { textArea.requestFocus(); } // // Attribute methods // // for toolbar display public String getFilename() { return filename; } // // EBComponent implementation // public void handleMessage(EBMessage message) { if (message instanceof PropertiesChanged) { propertiesChanged(); } } private void propertiesChanged() { String propertyFilename = jEdit.getProperty( QuickNotepadPlugin.OPTION_PREFIX + "filepath"); if(!MiscUtilities.objectsEqual(defaultFilename,propertyFilename)) { saveFile(); toolPanel.propertiesChanged(); defaultFilename = propertyFilename; filename = defaultFilename; readFile(); } Font newFont = QuickNotepadOptionPane.makeFont(); if(!newFont.equals(textArea.getFont())) { textArea.setFont(newFont); } } // These JComponent methods provide the appropriate points // to subscribe and unsubscribe this object to the EditBus public void addNotify() { super.addNotify(); EditBus.addToBus(this); } public void removeNotify() { saveFile(); super.removeNotify(); EditBus.removeFromBus(this); } // // QuickNotepadActions implementation // public void saveFile() { if(filename == null || filename.length() == 0) return; try { FileWriter out = new FileWriter(filename); out.write(textArea.getText()); out.close(); } catch (IOException ioe) { Log.log(Log.ERROR, QuickNotepad.class, "Could not write notepad text to " + filename); } } public void chooseFile() { String[] paths = GUIUtilities.showVFSFileDialog(view, null,JFileChooser.OPEN_DIALOG,false); if(paths != null && !paths[0].equals(filename)) { saveFile(); filename = paths[0]; toolPanel.propertiesChanged(); readFile(); } } public void copyToBuffer() { jEdit.newFile(view); view.getEditPane().getTextArea().setText(textArea.getText()); } // // helper methods // private void readFile() { if(filename == null || filename.length() == 0) return; BufferedReader bf = null; try { bf = new BufferedReader(new FileReader(filename)); StringBuffer sb = new StringBuffer(2048); String str; while((str = bf.readLine()) != null) { sb.append(str).append('\n'); } bf.close(); textArea.setText(sb.toString()); } catch (FileNotFoundException fnf) { Log.log(Log.ERROR, QuickNotepad.class, "notepad file " + filename + " does not exist"); } catch (IOException ioe) { Log.log(Log.ERROR, QuickNotepad.class, "could not read notepad file " + filename); } } // // Listener objects // // |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.