All pastes #91187 Raw Edit

Unnamed

public text v1 · immutable
#91187 ·published 2006-07-18 10:47 UTC
rendered paste body
package nith.hansa.gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import nith.hansa.gui.keyboard.*;

public class MainPanel extends JPanel{
	private InfoCardManager cardManager;
	private Dimension bottomDim = new Dimension(1280,175);
	private Dimension topDim = new Dimension(1280,62);
	private Dimension buttonDim = new Dimension(110,110);
	private BottomPanel bottomPanel;
	private TopPanel topPanel;
	private MainMenuPanel mainMenuPanel;
	private JPanel centerPanel;
	private Color topBottomColor = Color.BLACK;
	private Timer timer;
	
	private JButton homeButton;
	private JButton nextButton;
	private JButton prevButton;
	
	private final String IMAGE_PREFIX = "Images/GUI/";
	
	private ImageIcon homeButtonIcon;
	private ImageIcon homeButtonIconHit;
	private ImageIcon nextButtonIcon;
	private ImageIcon nextButtonIconHit;
	private ImageIcon nextButtonIconDisabled;
	private ImageIcon prevButtonIcon;
	private ImageIcon prevButtonIconHit;
	private ImageIcon prevButtonIconDisabled;
	
	private ImageIcon topPanelIcon;
	private ImageIcon bottomPanelIcon;

	
	private FlowLayout layout;
	
	private Font descriptionTextFont = new Font("Microsoft Sans Serif",Font.PLAIN,30);
	
	private ActionHandler handler = new ActionHandler();
	private TimerHandler timerHandler = new TimerHandler();
	private ChoicePanel choicePanel;
	
	
	//tore-
	VideoPanel video = new VideoPanel();
	
	
	private InfoCardManager[] managers = {
			new InfoCardManager("Historikk"),
			new InfoCardManager("Ølbrygging"),
			new InfoCardManager("Øl"),
			new InfoCardManager("Mineralvann"),
			new InfoCardManager("Idag")
	};
	
	private final int IDLE_TIME_BEFORE_RESET = 300000;
	
	public MainPanel(){
		timer = new Timer(IDLE_TIME_BEFORE_RESET,timerHandler);
		setLayout(new BorderLayout());
		mainMenuPanel = new MainMenuPanel(handler);
		choicePanel = new ChoicePanel(handler);
		centerPanel = mainMenuPanel;
		// HomeButton
		homeButtonIcon = new ImageIcon(IMAGE_PREFIX + "MainMenu.jpg");
		homeButtonIconHit = new ImageIcon(IMAGE_PREFIX + "MainMenuHit.jpg");
		topPanelIcon = new ImageIcon(IMAGE_PREFIX + "TopPanel.jpg");
		bottomPanelIcon = new ImageIcon(IMAGE_PREFIX + "BottomPanel.jpg");
		
		homeButton = new JButton(homeButtonIcon);
		homeButton.setPressedIcon(homeButtonIconHit);
		homeButton.setBorderPainted(false);
		homeButton.setMaximumSize(new Dimension(buttonDim));
		homeButton.setMinimumSize(new Dimension(buttonDim));
		homeButton.setContentAreaFilled(false);
		homeButton.setFocusPainted(false);
		homeButton.addActionListener(handler);

		// NextButton
		nextButtonIcon = new ImageIcon(IMAGE_PREFIX + "Next.jpg");
		nextButtonIconHit = new ImageIcon(IMAGE_PREFIX + "NextHit.jpg");
		nextButtonIconDisabled = new ImageIcon(IMAGE_PREFIX + "NextDisabled.jpg");
		
		nextButton = new JButton(nextButtonIcon);
		nextButton.setPressedIcon(nextButtonIconHit);
		nextButton.setDisabledIcon(nextButtonIconDisabled);
		nextButton.setBorderPainted(false);
		nextButton.setMaximumSize(new Dimension(buttonDim));
		nextButton.setMinimumSize(new Dimension(buttonDim));
		nextButton.setContentAreaFilled(false);
		nextButton.setFocusPainted(false);
		nextButton.addActionListener(handler);
		
		// PrevButton
		prevButtonIcon = new ImageIcon(IMAGE_PREFIX + "Prev.jpg");
		prevButtonIconHit = new ImageIcon(IMAGE_PREFIX + "PrevHit.jpg");
		prevButtonIconDisabled = new ImageIcon(IMAGE_PREFIX + "PrevDisabled.jpg");
		
		prevButton = new JButton(prevButtonIcon);
		prevButton.setPressedIcon(prevButtonIconHit);
		prevButton.setDisabledIcon(prevButtonIconDisabled);
		prevButton.setBorderPainted(false);
		prevButton.setMaximumSize(new Dimension(buttonDim));
		prevButton.setMinimumSize(new Dimension(buttonDim));
		prevButton.setContentAreaFilled(false);
		prevButton.setFocusPainted(false);
		prevButton.addActionListener(handler);
		

		bottomPanel = new BottomPanel();
		topPanel = new TopPanel();
		add(centerPanel,BorderLayout.CENTER);
//		add(new KeyboardControls(false),BorderLayout.CENTER);

//		topPanel.setDescriptionText("Skriv inn navnet du ønsker å skrive ut på diplomet");
		add(bottomPanel,BorderLayout.SOUTH);
		add(topPanel,BorderLayout.NORTH);
		toggleButtons();
		timer.start();
	}// end no-param constructor
	
	private class BottomPanel extends JPanel{
		public BottomPanel(){
			layout = new FlowLayout();
			layout.setVgap(22);
			setLayout(layout);
			setBackground(topBottomColor);
			setPreferredSize(bottomDim);
			
		}// end constructor
		
		public void removeButtons(){
			remove(prevButton);
			remove(homeButton);
			remove(nextButton);
			revalidate();
		}
		
		public void addButtons() {
			add(prevButton);
			add(homeButton);
			add(nextButton);
			revalidate();
		}
		
		public void paintComponent(Graphics g){
			super.paintComponent(g);
			bottomPanelIcon.paintIcon(this,g,0,0);
		}
	}// end private class BottomPanel
	
	private class TopPanel extends JPanel{
		private String stringToDraw = "";
		public TopPanel(){
			
			setBackground(topBottomColor);
			setPreferredSize(topDim);
		}// end constructor
		
		public void setDescriptionText(String text){
			stringToDraw = text;
			repaint();
		}
		
		public void paintComponent(Graphics g){
				setFont(descriptionTextFont);
				super.paintComponent(g);
				topPanelIcon.paintIcon(this,g,0,0);
		        RenderingHints renderHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
		        renderHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
		      
		        Graphics2D g2d = (Graphics2D) g;
		        g2d.setRenderingHints(renderHints);
		        g2d.setColor(Color.WHITE);
		        g2d.drawString(stringToDraw,(getWidth()/2)-((stringToDraw.length() * descriptionTextFont.getSize()/2)/2)+40,40);
		     
				
			
		}
	}// end private class TopPanel
	
	private class ActionHandler implements ActionListener{
		public void actionPerformed(ActionEvent event){
			
			if(event.getSource() == prevButton){
				cardManager.previousSlide();
				toggleButtons();
			}else if( event.getSource() == nextButton){
				cardManager.nextSlide();
				toggleButtons();
			}else if(event.getSource() == homeButton){
				mainMenu(false);
				video.stopPlaying();
			}else if(event.getSource() == mainMenuPanel.getButton(0)){
				changePanel(0);
			}else if(event.getSource() == mainMenuPanel.getButton(1)){
				//changePanel(1); tore-
				changePanel(video);
				video.startPlaying();
			}else if(event.getSource() == mainMenuPanel.getButton(2)){
				changePanel(choicePanel);
				toggleButtons(1);
			}else if(event.getSource() == mainMenuPanel.getButton(3)){
				changePanel(4);
			}else if(event.getSource() == choicePanel.getØlButton()){
				changePanel(2);
			}else if(event.getSource() == choicePanel.getMineralvannButton()){
				changePanel(3);
			}
			
			timer.restart();
			
		}// end actionPerformed
		
		
		private  void changePanel(int i){
			
			remove(centerPanel);
			cardManager = managers[i];
			centerPanel = cardManager;
			toggleButtons();
			add(centerPanel);
			bottomPanel.addButtons();
			refresh();
		}
		
		private void changePanel(ContentPanel panel){
			remove(centerPanel);
			centerPanel = panel;
			add(centerPanel);
			bottomPanel.addButtons();
			refresh();
		}
		
	
	}// end ActionHandler
	
	
	private class TimerHandler implements ActionListener{
		public void actionPerformed(ActionEvent event){
			MainPanel.this.mainMenu(true);
		}
	}// end class TimerHandler
	
	public void refresh(){
		centerPanel.revalidate();
		centerPanel.repaint();
		bottomPanel.revalidate();
		bottomPanel.repaint();
	}
	
	public void toggleButtons(){
		int enabled ;
		if(cardManager != null){
			enabled = cardManager.getButtonsEnabled();	
		}else{
			enabled = 1;
		}
	
		toggleButtons(enabled);
		
	}// end toggleButtons
	
	public void toggleButtons(int buttonMode){
	
		
		switch(buttonMode){
		case 1:
			nextButton.setEnabled(false);
			prevButton.setEnabled(false);
			break;
		case 2:
			nextButton.setEnabled(true);
			prevButton.setEnabled(false);
			break;
		case 3:
			nextButton.setEnabled(false);
			prevButton.setEnabled(true);
			break;
		case 4:
			nextButton.setEnabled(true);
			prevButton.setEnabled(true);
		}	
	}
	
	public void mainMenu(boolean isTimerTriggered){
		ContentPanel tempPanel = mainMenuPanel;
		
		
		if(centerPanel == choicePanel){
			
			bottomPanel.removeButtons();
		}else {
			if(cardManager != null){
				if(cardManager.getInfoSubject().equals("Øl") 
						|| cardManager.getInfoSubject().equals("Mineralvann")){
					/*
					 * If the event is triggered by the timer the program will return 
					 * to the main menu even though a push on the main menu button would send 
					 * you back to the choicePanel
					 */ 
					if(!isTimerTriggered){
						tempPanel = choicePanel;
						toggleButtons(1);
					}else{
						tempPanel = mainMenuPanel;
						bottomPanel.removeButtons();
					}
					
				}else{
					tempPanel = mainMenuPanel;
					bottomPanel.removeButtons();
				}// end inner else if
			}// end if
			
		}// end else if
		
		if(cardManager != null){
			cardManager.resetSlides();
		}

		remove(centerPanel);
		centerPanel = tempPanel;
		add(centerPanel);
	
		
		refresh();
	}
	
	public void resetManagers(){
		for (int i = 0; i < managers.length;i++){
			managers[i].resetSlides();
		}
	}
	
	public static void main(String[]args){
		JFrame testFrame = new JFrame();
		testFrame.add(new MainPanel());
//		testFrame.add(new InfoPanel("test"),BorderLayout.CENTER);
		testFrame.setAlwaysOnTop(true);
		testFrame.setUndecorated(true);
		testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		testFrame.setSize(1280,1024);
		testFrame.setLocation(50,00);
		testFrame.setVisible(true);
	}
	
}// end class MainPanel