View Javadoc

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      //getContentPane( ).setLayout( null );
61      setBounds( x0, y0, breite, hoehe );
62      //setModal( false );
63      //setResizable( true );
64      //addWindowListener( new FensterSchliessenSensor( ) );
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      //rollflaeche.setHorizontalScrollBarPolicy( HORIZONTAL_SCROLLBAR_ALWAYS );
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     //getContentPane().add( c );
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   		//Meldungsfenster.mitteilung( "Datei nicht gefunden" );
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   		//Meldungsfenster.mitteilung( "Lesezugriff - Fehler" );
148   	}
149   	dateiTF.setText( dateiText );
150   	try{
151   		datei.close();
152   	}
153   	catch( IOException io )
154   	{
155   		//Meldungsfenster.mitteilung( "Fehler beim Schliessen der Datei" );
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   		//Meldungsfenster.mitteilung( "Dateizugriff - Fehler" );
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   	//dispose();
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   			//Meldungsfenster.mitteilung( "Fehler: "+ exception );
217   			//JOptionPane.showMessageDialog( this, exception );
218   		}
219   	}
220   }
221   
222   private void seitenansicht()
223   {
224   	//Seitenvorschau sv = new Seitenvorschau( druckText_erzeugen() );
225   	//sv.show();  	
226   }
227   
228   private Book druckText_erzeugen()
229   {
230   	//String druckText="";
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 );  //Seite einrichten
241   	}
242   	Book book = new Book();
243 //  	PrintPage printPage = new PrintPage( druckText );
244 //  	book.append( printPage, selectedPage);//pageFormat );
245   	return book;  	
246   }
247 }