import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
//import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.part.ViewPart;
public class ViewPart1 extends ViewPart {
	
	int aktSchriftgrad;
	Font Schriftdaten;
	String aktSchriftart;
//	Control Fenster;
	
	public static final String ID = "test";
	static Font StdSchriftart = new Font(null, new FontData("Arial", 10, SWT.BOLD));
	
	
	public void createPartControl(final Composite parent) {
		
		parent.setLayout(new GridLayout(2, false));
		parent.setFont(StdSchriftart);
		
		aktSchriftgrad = parent.getFont().getFontData()[0].getHeight();
		
		
		// reservieren des ersten Auswahl-Knopf
	    Button Auswahl1Button = new Button(parent, SWT.RADIO);
	    // reservieren des zweiten Auswahl-Knopf
	    Button Auswahl2Button = new Button(parent, SWT.RADIO);
	    // reservieren des dritten Auswahl-Knopf
	    Button Auswahl3Button = new Button(parent, SWT.RADIO);
	    // reservieren des vierten Auswahl-Knopf
	    Button Auswahl4Button = new Button(parent, SWT.RADIO);
	    
	    
        // legt alle vier Radiobuttons an und bestimmt deren Beschriftung      
        Auswahl1Button.setText("Serif/variabel:");
        Auswahl2Button.setText("Serif/fest:");
        Auswahl3Button.setText("Sans-Serif/variabel:");
        Auswahl4Button.setText("Sans-Serif/fest:");
        
        
        // erstellt den Minus-Knopf
        Button MinusButton = new Button(parent, SWT.PUSH);
        // erstellt den Plus-Knopf
        Button PlusButton = new Button(parent, SWT.PUSH);
        // erstellt den Default-Knopf
        Button DefaultButton = new Button(parent, SWT.PUSH);
        
	    // übergibt die Unterobjekte der Ansicht der Konstante con
	    final Control[] con = parent.getChildren();
	    
	    
        Auswahl1Button.addSelectionListener(new SelectionListener(){
			public void widgetDefaultSelected(SelectionEvent e) {
				
			}
			
			// wird durchlaufen wenn der erste Auswahlknopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
    			
				for(int i = 0; i < con.length; i++) {
					// ändert die Schriftart auf Serif/variabel
					
	    			aktSchriftgrad = con[i].getFont().getFontData()[0].getHeight();
	    			con[i].setFont(new Font(null, "Bookman Old Style", aktSchriftgrad, SWT.BOLD));
	    			
//	    			Fenster.setFont(new Font(null, aktSchriftart, aktSchriftgrad, SWT.BOLD));
//					Fenster.update();
				}
			}
        });
        
        Auswahl2Button.addSelectionListener(new SelectionListener(){
			public void widgetDefaultSelected(SelectionEvent e) {
				
			}
			
			// wird durchlaufen wenn der zweite Auswahlknopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
    			
				for(int i = 0; i < con.length; i++) {
	    			// ändert die Schriftart auf Serif/fest
	    			aktSchriftgrad = con[i].getFont().getFontData()[0].getHeight();
	    			con[i].setFont(new Font(null, "Courier New", aktSchriftgrad, SWT.BOLD));
				}
			}
        });
        
        Auswahl3Button.addSelectionListener(new SelectionListener(){
			public void widgetDefaultSelected(SelectionEvent e) {
				
			}
			
			// wird durchlaufen wenn der dritte Auswahlknopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
    			
				for(int i = 0; i < con.length; i++) {
					// ändert die Schriftart auf Sans-Serif/variabel
	    			aktSchriftgrad = con[i].getFont().getFontData()[0].getHeight();
	    			con[i].setFont(new Font(null, "Arial", aktSchriftgrad, SWT.BOLD));
				}
			}
        });
        
        Auswahl4Button.addSelectionListener(new SelectionListener(){
			public void widgetDefaultSelected(SelectionEvent e) {
				
			}
			
			// wird durchlaufen wenn der vierte Auswahlknopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
    			
				for(int i = 0; i < con.length; i++) {
					// ändert die Schriftart auf Sans-Serif/fest
	    			aktSchriftgrad = con[i].getFont().getFontData()[0].getHeight();
	    			con[i].setFont(new Font(null, "Lucida Console", aktSchriftgrad, SWT.BOLD));
				}
			}
        });
        
        // Eigenschaften des MinusButtons
        MinusButton.setText("  -  ");
        MinusButton.addSelectionListener(new SelectionListener(){
			public void widgetDefaultSelected(SelectionEvent e) {
				
			}
			
			// wird durchlaufen wenn der Minus-Knopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
				// reduzieren der Schriftgröße um 1, wenn Schriftgröße größer als 8
				
				if ((aktSchriftgrad > 8)){
					aktSchriftgrad = aktSchriftgrad - 1;
					aktSchriftart = con[0].getFont().getFontData()[0].getName();
					for(int i = 0; i < con.length; i++) {
						con[i].setFont(new Font(null, aktSchriftart, aktSchriftgrad, SWT.BOLD));
					}
				}
			}
        });
        
        // Eigenschaften des PlusButtons
        PlusButton.setText("  +  ");
        PlusButton.addSelectionListener(new SelectionListener() {
			public void widgetDefaultSelected(SelectionEvent e) {
			
			}
			
			// wird durchlaufen wenn der Plus-Knopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
				// reduzieren der Schriftgröße um 1
				
				aktSchriftgrad = aktSchriftgrad + 1;
				aktSchriftart = con[0].getFont().getFontData()[0].getName();
				for(int i = 0; i < con.length; i++) {
					con[i].setFont(new Font(null, aktSchriftart, aktSchriftgrad, SWT.BOLD));
				}
			}
        });
        
        // Eigenschaften des DefaultButtons
        DefaultButton.setText("Standard");
        DefaultButton.addSelectionListener(new SelectionListener() {
			public void widgetDefaultSelected(SelectionEvent e) {
			
			}
			
			// wird durchlaufen wenn der Default-Knopf ausgelöst wird
			public void widgetSelected(SelectionEvent e) {
				// stellt den Defaultwert für die Schrift ein
				for(int i = 0; i < con.length; i++) {
					aktSchriftgrad = 10;
					con[i].setFont(StdSchriftart);
				}
			}
        });
	}
	
	public void widgetDefaultSelected() {
		
	}
	
	public void setFocus() {
        
	}
}