1
2 package org.xrn.gui;
3
4 import java.awt.Color;
5 import java.awt.FlowLayout;
6 import java.awt.Font;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.awt.print.Book;
10 import java.awt.print.PageFormat;
11 import java.awt.print.PrinterException;
12 import java.awt.print.PrinterJob;
13 import java.io.BufferedReader;
14 import java.io.File;
15 import java.io.FileNotFoundException;
16 import java.io.FileReader;
17 import java.io.FileWriter;
18 import java.io.IOException;
19 import java.io.PrintWriter;
20 import java.io.RandomAccessFile;
21 import java.util.Properties;
22
23 import javax.swing.JButton;
24 import javax.swing.JComponent;
25 import javax.swing.JLabel;
26 import javax.swing.JPanel;
27 import javax.swing.JScrollPane;
28 import javax.swing.JTextField;
29 import javax.swing.JTextPane;
30 import javax.swing.ScrollPaneConstants;
31
32 public class DateiBearbF extends JPanel
33 implements ActionListener
34 {
35 private int x0 = 80;
36 private int y0 = 40;
37 private int breite = 525;
38 private int hoehe = 520;
39 private Font schriftTyp;
40
41 private JLabel dateiS;
42 private JTextField dateiWF;
43
44 private JTextPane dateiTF;
45 private JScrollPane rollflaeche;
46 private MessageWindow Meldungsfenster;
47
48 private OpenFilePanel dateiDG;
49 private String druckText;
50 private String dateiPfad;
51 private String dateiName;
52 private RandomAccessFile datei;
53
54 private JButton speichernAS, schliessenAS;
55 private JButton druckenAS, seitenansichtAS;
56
57 public DateiBearbF( OpenFilePanel dateiDG )
58 {
59 super( new FlowLayout( FlowLayout.LEFT ) );
60
61 setBounds( x0, y0, breite, hoehe );
62
63
64
65 schriftTyp = new Font( "Dialog", Font.BOLD, 12 );
66 setFont( schriftTyp );
67
68 this.dateiDG = dateiDG;
69
70 dateiS = new JLabel( "Datei: " );
71 dlgObjHinzufuegen( dateiS, 25, 25, 50, 25 );
72 dateiWF = new JTextField();
73 dateiWF.setEnabled( false );
74 dlgObjHinzufuegen( dateiWF, 90, 25, 200, 25 );
75
76 dateiTF = new JTextPane();
77 rollflaeche = new JScrollPane( dateiTF,
78 ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
79 ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS );
80
81 dlgObjHinzufuegen( rollflaeche, 25, 70, 450, 300 );
82
83 druckenAS = new JButton( "drucken" );
84 dlgObjHinzufuegen( druckenAS, 25, 400, 110, 25 );
85 druckenAS.addActionListener( this );
86
87 seitenansichtAS = new JButton( "Seitenansicht" );
88 dlgObjHinzufuegen( seitenansichtAS, 150, 400, 110, 25 );
89 seitenansichtAS.addActionListener( this );
90
91 speichernAS = new JButton( "speichern" );
92 dlgObjHinzufuegen( speichernAS, 25, 435, 110, 25 );
93 speichernAS.addActionListener( this );
94
95 schliessenAS = new JButton( "schliessen" );
96 dlgObjHinzufuegen( schliessenAS, 150, 435, 110, 25 );
97 schliessenAS.addActionListener( this );
98
99 Meldungsfenster = new MessageWindow();
100
101 datei_lesen();
102
103 }
104
105 public void dlgObjHinzufuegen(
106 JComponent c,
107 int x0, int y0, int breite, int hoehe )
108 {
109 c.setBounds( x0, y0, breite, hoehe );
110 c.setForeground( Color.black );
111
112 }
113
114
115 private void datei_lesen()
116 {
117 Properties systemeigenschaften = System.getProperties();
118 String arbeitsVerz = systemeigenschaften.getProperty( "user.dir" );
119 String zeileTrennen = systemeigenschaften.getProperty( "line.separator" );
120 String dateiText="";
121 String dateiTextTemp="";
122 BufferedReader lesepuffer;
123 FileReader dateipuffer=null;
124
125 dateiName = dateiDG.lesen();
126 dateiWF.setText( dateiName );
127 dateiPfad = arbeitsVerz + File.separator +
128 "konzept" + File.separator + "zugriffsoperationen" +
129 File.separator + dateiName;
130 datei = null;
131 try{
132 datei = new RandomAccessFile( dateiPfad, "rw" );
133 }
134 catch( FileNotFoundException fnf )
135 {
136
137 }
138 try{
139 while( (dateiTextTemp = datei.readLine()) != null )
140 {
141 dateiText = dateiText + dateiTextTemp;
142 dateiText = dateiText + zeileTrennen;
143 }
144 }
145 catch( IOException io )
146 {
147
148 }
149 dateiTF.setText( dateiText );
150 try{
151 datei.close();
152 }
153 catch( IOException io )
154 {
155
156 }
157 }
158
159 private void datei_schreiben()
160 {
161 PrintWriter datei_output = null;
162
163
164 try{
165 datei_output = new PrintWriter( new FileWriter( dateiPfad ), true );
166 }
167 catch( IOException io )
168 {
169
170 }
171 datei_output.println( dateiTF.getText() );
172 }
173
174
175 public void actionPerformed( ActionEvent e )
176 {
177 if ( e.getSource() == speichernAS )
178 speichern();
179 else if ( e.getSource() == schliessenAS )
180 schliessen();
181 else if ( e.getSource() == druckenAS )
182 drucken();
183 else if ( e.getSource() == seitenansichtAS )
184 seitenansicht();
185 }
186
187
188 public void radieren( )
189 {
190 dateiWF.setText( "" );
191 }
192
193 public void schliessen()
194 {
195 setVisible( false );
196
197 }
198
199 public void speichern()
200 {
201 datei_schreiben();
202 }
203
204 public void drucken( )
205 {
206 PrinterJob printJob = PrinterJob.getPrinterJob();
207 printJob.setPageable( druckText_erzeugen() );
208 if( printJob.printDialog() )
209 {
210 try
211 {
212 printJob.print();
213 }
214 catch( PrinterException exception )
215 {
216
217
218 }
219 }
220 }
221
222 private void seitenansicht()
223 {
224
225
226 }
227
228 private Book druckText_erzeugen()
229 {
230
231 druckText = dateiTF.getText();
232 PageFormat pageFormat = new PageFormat();
233 PageFormat selectedPage = new PageFormat();
234 PrinterJob printJob=null;
235 pageFormat = null;
236 if( pageFormat == null )
237 {
238 printJob = PrinterJob.getPrinterJob();
239 pageFormat = printJob.defaultPage();
240 selectedPage = printJob.pageDialog( pageFormat );
241 }
242 Book book = new Book();
243
244
245 return book;
246 }
247 }