content: /*
   * Copyright (c) 2016, Alex Blewitt, Bandlem Ltd
   * Copyright (c) 2016, Packt Publishing Ltd
   *
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the Eclipse Public License v1.0
   * which accompanies this distribution, and is available at
   * http://www.eclipse.org/legal/epl-v10.html
   */
  package com.packtpub.e4.clock.ui.views;
  
  import java.time.ZoneId;
  
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.events.SelectionEvent;
  import org.eclipse.swt.events.SelectionListener;
  import org.eclipse.swt.graphics.Color;
  import org.eclipse.swt.graphics.RGB;
  import org.eclipse.swt.layout.RowData;
  import org.eclipse.swt.layout.RowLayout;
  import org.eclipse.swt.widgets.Combo;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.ui.part.ViewPart;
  
  import com.packtpub.e4.clock.ui.ClockWidget;
  
  public class ClockView extends ViewPart {
  	private Combo timeZones;
  
  	public void createPartControl(Composite parent) {
  		Object[] objects = parent.getDisplay().getDeviceData().objects;
  		int count = 0;
  		for (int i = 0; i < objects.length; i++) {
  			if (objects[i] instanceof Color) {
  				count++;
  			}
  		}
  		System.err.println("There are " + count + " Color instances");
  		RowLayout layout = new RowLayout(SWT.HORIZONTAL);
  		parent.setLayout(layout);
  		final ClockWidget clock1 = new ClockWidget(parent, SWT.NONE, new RGB(255, 0, 0));
  		final ClockWidget clock2 = new ClockWidget(parent, SWT.NONE, new RGB(0, 255, 0));
  		final ClockWidget clock3 = new ClockWidget(parent, SWT.NONE, new RGB(0, 0, 255));
  		clock1.setLayoutData(new RowData(20, 20));
  		clock2.setLayoutData(new RowData(50, 50));
  		clock3.setLayoutData(new RowData(100, 100));
  		timeZones = new Combo(parent, SWT.DROP_DOWN);
  		timeZones.setVisibleItemCount(5);
  		for (String zone : ZoneId.getAvailableZoneIds()) {
  			timeZones.add(zone);
  		}
  		timeZones.addSelectionListener(new SelectionListener() {
  			public void widgetSelected(SelectionEvent e) {
  				String id = timeZones.getText();
  				clock3.setZone(ZoneId.of(id));
  				clock3.redraw();
  			}
  
  			public void widgetDefaultSelected(SelectionEvent e) {
  				clock3.setZone(ZoneId.systemDefault());
  				clock3.redraw();
  			}
  		});
  	}
  
  	public void setFocus() {
  		timeZones.setFocus();
  	}
  }
  