summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/MainMenuWindow.java
blob: ca9dc670680ca2174eb93c493156852c9b89bd4d (plain) (tree)
1
2
3
4
5
6
7
8
9

                                      

                       




                                 
                                  
                                         
                                                                 



                                        


                                                          

                                 



                                                                      
                                                                           






                                                                            

                                                                             


                   
                 
                                      


                            







































                                                                                                       
                 
                                   























                                                                                                                                             

         
 
package org.openslx.dozmod.gui.window;

import java.awt.Button;
import java.awt.Image;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;

import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.window.layout.MainMenuWindowLayout;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;

import com.google.gson.Gson;

public class MainMenuWindow extends MainMenuWindowLayout {

	public MainMenuWindow() {
		super();
		// function for vmButton
		vmButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				MainWindow.showPage(ImageListWindow.class);
			}
		});

		// function for lecturesButton
		lecturesButton.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				MainWindow.showPage(LectureListWindow.class);
			}
		});
	}

	@Override
	public boolean requestHide() {
		return true;
	}

	// Stuff start

	private boolean once = false;

	private class GMain {
		private GResponse responseData;
	}

	private class GResponse {
		private GResult[] results;
	}

	private class GResult {
		private String tbUrl;
	}
	
	private int loadImageToControl(int start, GResult[] results, final Button control) {
		if (start >= results.length)
			start = results.length - 1;
		while (start < results.length) {
			try {
				URL oracle = new URL(results[start].tbUrl);
				final ImageData img = new ImageData(oracle.openStream());
				Gui.asyncExec(new Runnable() {
					@Override
					public void run() {
						control.setImage(new Image(control.getDisplay(), img));
						control.getParent().layout(true, true);
					}
				});
				break;
			} catch (Exception e) {
			}
			start++;
		}
		return start;
	}

	// Stuff end

	@Override
	public void requestShow() {
		// All stuff is stuff
		if (once)
			return;
		once = true;
		QuickTimer.scheduleOnce(new Task() {
			String[] terms = new String[] { "lehrpool", "dnbd3", "lehrstuhl", "dozmod", "lehrpool-suite",
					"java", "hund", "katze", "maus" };

			@Override
			public void fire() {
				String term = terms[(int) Math.floor(Math.random() * terms.length)] + "+"
						+ terms[(int) Math.floor(Math.random() * terms.length)];
				try {
					URL oracle = new URL("http://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&q=" + term);
					Reader reader = new InputStreamReader(oracle.openStream());
					Gson gson = new Gson();
					GMain data = gson.fromJson(reader, GMain.class);
					int used = loadImageToControl(0, data.responseData.results, lecturesButton);
					loadImageToControl(used + 1, data.responseData.results, vmButton);
				} catch (IOException e) {
					return;
				}
			}
		});
	}

}