/***************************************************************************
* Copyright (C) 2009 by Rajgopal Vaithiyanathan *
* rajgopalv@yahoo.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 *
* (at your option) 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. *
***************************************************************************/
/*
* PosterView.java
*
* Created on Aug 23, 2009, 3:39:49 PM
*/
package codeposter;
import formatter.CodeFormatter;
import formatter.PosterPreferences;
import java.awt.datatransfer.Transferable;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import looknfeel.LnFListener;
import indent.IndentManager;
import java.awt.Color;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.WindowListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import pastebin.WebPoster;
import pastebin.WebPosterPrefs;
/*
* @author Rajgopal
*/
public class PosterView extends javax.swing.JFrame implements ActionListener,WindowListener
{
private AboutDialog about;
private LnFListener lnf;
private CodeFormatter formatter;
private IndentManager indent;
private PosterPreferences posterPrefs;
private SignatureDialog signatureDialog;
private WebPoster webposter ;
private FormatterSettings formatterSettingsDialog;
private MouseAdapter madpt;
/** Creates new form PosterView */
public PosterView()
{
initComponents();
posterPrefs=new PosterPreferences();
formatter = new CodeFormatter(posterPrefs);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("Orkut Code Poster - ııll raj llıı");
indent = new IndentManager(viewTextBox);
viewTextBox.addKeyListener(indent);
lnf = new LnFListener(this);
buttonGroup.add(standard_color);
buttonGroup.add(black_color);
buttonGroup.add(blue_color);
buttonGroup.add(red_color);
buttonGroup.add(green_color);
metal_menu.addActionListener(this);
motif_menu.addActionListener(this);
window_menu.addActionListener(this);
setPosterProperties();
about = new AboutDialog(this, true,lnf);
signatureDialog = new SignatureDialog(this, true, lnf, posterPrefs);
webposter = new WebPoster(this,true,lnf);
formatterSettingsDialog = new FormatterSettings(new javax.swing.JFrame(), true,lnf,posterPrefs);
Rectangle r = getGraphicsConfiguration().getBounds();
setLocation(r.width / 2 - getWidth() / 2, r.height / 2 - getHeight() / 2);
addWindowListener(this);
madpt = new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
publishCode(evt);
}
private void publishCode(MouseEvent evt)
{
publishActionPerformed(null);
}
};
this.setVisible(true);
}
private void setPosterProperties()
{
switch(posterPrefs.getSyntaxColor())
{
default:
formatter.setColorCode(0);
standard_color.setSelected(true);
break;
case 1:
formatter.setColorCode(1);
red_color.setSelected(true);
break;
case 2:
formatter.setColorCode(2);
green_color.setSelected(true);
break;
case 3:
formatter.setColorCode(3);
blue_color.setSelected(true);
break;
case 4:
formatter.setColorCode(4);
blue_color.setSelected(true);
break;
}
try{
switch (posterPrefs.getTheme())
{
default:
lnf.setWindowsTheme();
break;
case 1:
lnf.setMotifTheme();
break;
case 2:
lnf.setMetalTheme();
break;
}
} catch(Exception ex)
{
JOptionPane.showConfirmDialog(null, "Theme you seleceted was not found in this platform"+"\nSetting to theme to Metal.", "Theme not supported", JOptionPane.PLAIN_MESSAGE);
posterPrefs.setTheme(2);
try
{
lnf.setMetalTheme();
} catch (Exception ex1){}
}
line.setSelected(posterPrefs.isLineNum());
unicodeIndent.setSelected(posterPrefs.isUnicodeIndent());
setSize(posterPrefs.getWidth(), posterPrefs.getHeight());
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {
buttonGroup = new javax.swing.ButtonGroup();
PosterTabPane = new javax.swing.JTabbedPane();
viewTab = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
viewTextBox = new javax.swing.JTextArea();
unicodeIndent = new javax.swing.JCheckBox();
line = new javax.swing.JCheckBox();
htmlTab = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
formattedTextBox = new javax.swing.JTextArea();
error_status = new javax.swing.JLabel();
menuBar = new javax.swing.JMenuBar();
file = new javax.swing.JMenu();
open_menu = new javax.swing.JMenuItem();
publish = new javax.swing.JMenuItem();
exportToHTML = new javax.swing.JMenuItem();
exit_menu = new javax.swing.JMenuItem();
edit = new javax.swing.JMenu();
jMenu1 = new javax.swing.JMenu();
standard_color = new javax.swing.JRadioButtonMenuItem();
blue_color = new javax.swing.JRadioButtonMenuItem();
red_color = new javax.swing.JRadioButtonMenuItem();
green_color = new javax.swing.JRadioButtonMenuItem();
black_color = new javax.swing.JRadioButtonMenuItem();
formatCode_menu = new javax.swing.JMenuItem();
pastebinSettings = new javax.swing.JMenuItem();
signature = new javax.swing.JMenuItem();
formatterSettings = new javax.swing.JMenuItem();
theme = new javax.swing.JMenu();
window_menu = new javax.swing.JMenuItem();
motif_menu = new javax.swing.JMenuItem();
metal_menu = new javax.swing.JMenuItem();
help = new javax.swing.JMenu();
about_menu = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
viewTextBox.setColumns(20);
viewTextBox.setFont(new java.awt.Font("Courier New", 0, 12));
viewTextBox.setRows(5);
viewTextBox.setTabSize(4);
jScrollPane1.setViewportView(viewTextBox);
unicodeIndent.setText("Use unicode characters for indentation");
unicodeIndent.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
unicodeIndentActionPerformed(evt);
}
});
line.setText("Include Line numbers");
line.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
lineActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout viewTabLayout = new org.jdesktop.layout.GroupLayout(viewTab);
viewTab.setLayout(viewTabLayout);
viewTabLayout.setHorizontalGroup(
viewTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, viewTabLayout.createSequentialGroup()
.addContainerGap()
.add(viewTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE)
.add(viewTabLayout.createSequentialGroup()
.add(unicodeIndent)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 47, Short.MAX_VALUE)
.add(line)))
.addContainerGap())
);
viewTabLayout.setVerticalGroup(
viewTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(viewTabLayout.createSequentialGroup()
.addContainerGap()
.add(viewTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(unicodeIndent)
.add(line, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE)
.addContainerGap())
);
PosterTabPane.addTab("Type Here", viewTab);
formattedTextBox.setColumns(20);
formattedTextBox.setEditable(false);
formattedTextBox.setFont(new java.awt.Font("Courier New", 0, 12));
formattedTextBox.setRows(5);
formattedTextBox.setTabSize(4);
formattedTextBox.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
formattedTextBoxFocusGained(evt);
}
});
jScrollPane2.setViewportView(formattedTextBox);
error_status.setFont(new java.awt.Font("Courier New", 0, 12)); // NOI18N
error_status.setForeground(new java.awt.Color(158, 0, 0));
org.jdesktop.layout.GroupLayout htmlTabLayout = new org.jdesktop.layout.GroupLayout(htmlTab);
htmlTab.setLayout(htmlTabLayout);
htmlTabLayout.setHorizontalGroup(
htmlTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, htmlTabLayout.createSequentialGroup()
.addContainerGap()
.add(htmlTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, error_status, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 385, Short.MAX_VALUE))
.addContainerGap())
);
htmlTabLayout.setVerticalGroup(
htmlTabLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, htmlTabLayout.createSequentialGroup()
.addContainerGap()
.add(error_status)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE)
.addContainerGap())
);
PosterTabPane.addTab("Post This", htmlTab);
file.setText("File");
open_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
open_menu.setText("Open");
open_menu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
open_menuActionPerformed(evt);
}
});
file.add(open_menu);
publish.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
publish.setText("Publish on pastebin.ca");
publish.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
publishActionPerformed(evt);
}
});
file.add(publish);
exportToHTML.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK));
exportToHTML.setText("Export to HTML");
exportToHTML.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exportToHTMLActionPerformed(evt);
}
});
file.add(exportToHTML);
exit_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK));
exit_menu.setText("Exit");
exit_menu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exit_menuActionPerformed(evt);
}
});
file.add(exit_menu);
menuBar.add(file);
edit.setText("Edit");
jMenu1.setText("Syntax Coloring");
standard_color.setSelected(true);
standard_color.setText("Standard");
standard_color.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
standard_colorActionPerformed(evt);
}
});
jMenu1.add(standard_color);
blue_color.setSelected(true);
blue_color.setText("All Blue");
blue_color.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
blue_colorActionPerformed(evt);
}
});
jMenu1.add(blue_color);
red_color.setSelected(true);
red_color.setText("All Red");
red_color.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
red_colorActionPerformed(evt);
}
});
jMenu1.add(red_color);
green_color.setSelected(true);
green_color.setText("All Green");
green_color.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
green_colorActionPerformed(evt);
}
});
jMenu1.add(green_color);
black_color.setSelected(true);
black_color.setText("All Black");
black_color.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
black_colorActionPerformed(evt);
}
});
jMenu1.add(black_color);
edit.add(jMenu1);
formatCode_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.SHIFT_MASK));
formatCode_menu.setText("FormatCode");
formatCode_menu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
formatCode_menuActionPerformed(evt);
}
});
edit.add(formatCode_menu);
pastebinSettings.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.ALT_MASK));
pastebinSettings.setText("Publisher settings");
pastebinSettings.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
pastebinSettingsActionPerformed(evt);
}
});
edit.add(pastebinSettings);
signature.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.ALT_MASK));
signature.setText("Signature Settings");
signature.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
signatureActionPerformed(evt);
}
});
edit.add(signature);
formatterSettings.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK));
formatterSettings.setText("Formatter Settings");
formatterSettings.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
formatterSettingsActionPerformed(evt);
}
});
edit.add(formatterSettings);
menuBar.add(edit);
theme.setText("Theme");
window_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_W, java.awt.event.InputEvent.ALT_MASK));
window_menu.setText("Windows");
theme.add(window_menu);
motif_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.ALT_MASK));
motif_menu.setText("Motif");
theme.add(motif_menu);
metal_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.ALT_MASK));
metal_menu.setText("Metal");
theme.add(metal_menu);
menuBar.add(theme);
help.setText("Help");
about_menu.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_F1, 0));
about_menu.setText("About");
about_menu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
about_menuActionPerformed(evt);
}
});
help.add(about_menu);
menuBar.add(help);
setJMenuBar(menuBar);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(PosterTabPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 410, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(PosterTabPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 311, Short.MAX_VALUE)
);
pack();
}//
private void convert()
{
String viewString = viewTextBox.getText();
String htmlString = viewString;
if(posterPrefs.isEnableSignature())
if(posterPrefs.isAddSignAtBegining())
htmlString = posterPrefs.getSignature()+htmlString;
else
htmlString+=posterPrefs.getSignature();
htmlString = formatter.format(htmlString, unicodeIndent.isSelected(),line.isSelected());
formattedTextBox.setText(htmlString);
if(viewString.length()>2048 || htmlString.length()>2048)
{
error_status.setForeground(Color.red);
error_status.setText("WARNING : Your post's length exceeds 2048 characters.
Click this warning to publish your code");
error_status.addMouseListener(madpt);
}
else if(posterPrefs.getAutoCopy())
{
error_status.setForeground(Color.BLUE);
error_status.setText("Contents copied to clipboard.!");
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
error_status.removeMouseListener(madpt);
StringSelection data = new StringSelection(htmlString);
cb.setContents(data, null);
}
else
error_status.setText("");
}
private void loadContent(String fname)
{
FileReader fr = null;
try
{
fr = new FileReader(fname);
viewTextBox.read(fr, null);
indent.format();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(this, "Error in reading file.!", "Error!", JOptionPane.NO_OPTION);
return;
} finally {
try
{
if(fr!=null)fr.close();
} catch (IOException ex)
{}
}
}
private void exit_menuActionPerformed(java.awt.event.ActionEvent evt)
{
posterPrefs.setHeight(getHeight());
posterPrefs.setWidth(getWidth());
posterPrefs.writePreferences();
System.exit(0);
}
private void about_menuActionPerformed(java.awt.event.ActionEvent evt)
{
about.setVisible(true);
}
private void open_menuActionPerformed(java.awt.event.ActionEvent evt)
{
JFileChooser filechooser = new JFileChooser();
int option = filechooser.showOpenDialog(this);
if (option == JFileChooser.APPROVE_OPTION)
{
File f = filechooser.getSelectedFile();
loadContent(f.getAbsolutePath());
}
}
private void publishActionPerformed(java.awt.event.ActionEvent evt)
{
webposter.setContent(viewTextBox.getText());
String reply = webposter.post();
if(reply.charAt(0) != '*' )
JOptionPane.showMessageDialog(this,reply, "Failed to publish at http://pastebin.ca", JOptionPane.NO_OPTION);
else
{
if(posterPrefs.getAutoCopy())
{
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection data = new StringSelection(reply.substring(49));
cb.setContents(data, null);
}
JOptionPane.showInputDialog(this, reply.substring(1, 49),"Publish to http://pastebin.ca",JOptionPane.NO_OPTION,null,null,reply.substring(49));
}
}
private void formattedTextBoxFocusGained(java.awt.event.FocusEvent evt)
{
convert();
}
private void lineActionPerformed(java.awt.event.ActionEvent evt)
{
posterPrefs.setLineNum(line.isSelected());
}
private void unicodeIndentActionPerformed(java.awt.event.ActionEvent evt)
{
if(unicodeIndent.isSelected())
if(JOptionPane.showConfirmDialog(null,
"Using unicode characters in your program will reduce the characters used for indentation. But after posting\n" +
"the formatted code in the forum, users cannot copy-paste from the forum and compile it directly .They will\n" +
"have to remove the unicode characters manually before compilation.", "Not Reccomended!", JOptionPane.OK_CANCEL_OPTION)
== JOptionPane.CANCEL_OPTION)
unicodeIndent.setSelected(false);
posterPrefs.setUnicodeIndent(unicodeIndent.isSelected());
}
private void formatterSettingsActionPerformed(java.awt.event.ActionEvent evt)
{
formatterSettingsDialog.setVisible(true);
}
private void signatureActionPerformed(java.awt.event.ActionEvent evt)
{
signatureDialog.setVisible(true);
}
private void pastebinSettingsActionPerformed(java.awt.event.ActionEvent evt)
{
webposter.setContent(viewTextBox.getText());
webposter.setVisible(true);
}
private void formatCode_menuActionPerformed(java.awt.event.ActionEvent evt)
{
indent.format();
}
private void black_colorActionPerformed(java.awt.event.ActionEvent evt)
{
formatter.setColorCode(4);
posterPrefs.setSyntaxColor(4);
}
private void green_colorActionPerformed(java.awt.event.ActionEvent evt)
{
formatter.setColorCode(2);
posterPrefs.setSyntaxColor(2);
}
private void red_colorActionPerformed(java.awt.event.ActionEvent evt)
{
formatter.setColorCode(1);
posterPrefs.setSyntaxColor(1);
}
private void blue_colorActionPerformed(java.awt.event.ActionEvent evt)
{
formatter.setColorCode(3);
posterPrefs.setSyntaxColor(3);
}
private void standard_colorActionPerformed(java.awt.event.ActionEvent evt)
{
formatter.setColorCode(0);
posterPrefs.setSyntaxColor(0);
}
private void exportToHTMLActionPerformed(java.awt.event.ActionEvent evt)
{
String viewString = viewTextBox.getText();
String htmlString = viewString;
if(posterPrefs.isEnableSignature())
if(posterPrefs.isAddSignAtBegining())
htmlString = posterPrefs.getSignature()+htmlString;
else
htmlString+=posterPrefs.getSignature();
JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle("Save As..");
int option = chooser.showSaveDialog(this);
if (option == JFileChooser.APPROVE_OPTION)
{
File f = chooser.getSelectedFile();
if (!f.exists())
try
{
f.createNewFile();
} catch (IOException e)
{
JOptionPane.showMessageDialog(this, "Error in creating file.!", "Error!", JOptionPane.NO_OPTION);
return;
}
else
{
if(JOptionPane.showConfirmDialog(this, "Are you sure you want to replace this file?", "Replace ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.CANCEL_OPTION)
return;
}
String outfile = f.getAbsolutePath();
htmlString = HTMLExporter.export(htmlString, unicodeIndent.isSelected(),
line.isSelected(), formatter.getColorCode());
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try
{
fos = new FileOutputStream(outfile);
osw = new OutputStreamWriter(fos);
bw = new BufferedWriter(osw);
bw.write(htmlString);
} catch (Exception ex)
{
JOptionPane.showMessageDialog(this, "Error in writing into the file.!", "Error!", JOptionPane.NO_OPTION);
} finally
{
try
{
if(bw!=null)bw.close();
if(osw!=null)osw.close();
if(fos!=null)fos.close();
} catch (IOException ex)
{}
}
}
formattedTextBox.setText(htmlString);
}
// Variables declaration - do not modify
private javax.swing.JTabbedPane PosterTabPane;
private javax.swing.JMenuItem about_menu;
private javax.swing.JRadioButtonMenuItem black_color;
private javax.swing.JRadioButtonMenuItem blue_color;
private javax.swing.ButtonGroup buttonGroup;
private javax.swing.JMenu edit;
private javax.swing.JLabel error_status;
private javax.swing.JMenuItem exit_menu;
private javax.swing.JMenuItem exportToHTML;
private javax.swing.JMenu file;
private javax.swing.JMenuItem formatCode_menu;
private javax.swing.JTextArea formattedTextBox;
private javax.swing.JMenuItem formatterSettings;
private javax.swing.JRadioButtonMenuItem green_color;
private javax.swing.JMenu help;
private javax.swing.JPanel htmlTab;
private javax.swing.JMenu jMenu1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JCheckBox line;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenuItem metal_menu;
private javax.swing.JMenuItem motif_menu;
private javax.swing.JMenuItem open_menu;
private javax.swing.JMenuItem pastebinSettings;
private javax.swing.JMenuItem publish;
private javax.swing.JRadioButtonMenuItem red_color;
private javax.swing.JMenuItem signature;
private javax.swing.JRadioButtonMenuItem standard_color;
private javax.swing.JMenu theme;
private javax.swing.JCheckBox unicodeIndent;
private javax.swing.JPanel viewTab;
private javax.swing.JTextArea viewTextBox;
private javax.swing.JMenuItem window_menu;
// End of variables declaration
//Actions for Themes menu
public void actionPerformed(ActionEvent e)
{
try
{
if (e.getActionCommand().equals("Metal"))
{
posterPrefs.setTheme(2);
lnf.setMetalTheme();
} else if (e.getActionCommand().equals("Motif"))
{
posterPrefs.setTheme(1);
lnf.setMotifTheme();
} else if(e.getActionCommand().equals("Windows"))
{
posterPrefs.setTheme(0);
lnf.setWindowsTheme();
}
} catch (Exception ex1)
{
JOptionPane.showConfirmDialog(null, "Theme you seleceted was not found in this platform"+"\nSetting to theme to Metal.", "Theme not supported", JOptionPane.PLAIN_MESSAGE);
posterPrefs.setTheme(2);
try
{
lnf.setMetalTheme();
} catch (Exception ex){}
}
}
public void windowOpened(WindowEvent e) { }
public void windowClosing(WindowEvent e)
{
posterPrefs.setHeight(getHeight());
posterPrefs.setWidth(getWidth());
posterPrefs.writePreferences();
}
public void windowClosed(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
}