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 java.util.Map;
  import java.util.Set;
  
  import org.eclipse.swt.SWT;
  import org.eclipse.swt.custom.CTabFolder;
  import org.eclipse.swt.custom.CTabItem;
  import org.eclipse.swt.custom.ScrolledComposite;
  import org.eclipse.swt.graphics.Point;
  import org.eclipse.swt.graphics.RGB;
  import org.eclipse.swt.layout.FillLayout;
  import org.eclipse.swt.layout.RowLayout;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.swt.widgets.Group;
  import org.eclipse.ui.part.ViewPart;
  
  import com.packtpub.e4.clock.ui.ClockWidget;
  import com.packtpub.e4.clock.ui.internal.TimeZoneComparator;
  
  public class TimeZoneView extends ViewPart {
  
  	@Override
  	public void createPartControl(Composite parent) {
  		Map<String, Set<ZoneId>> timeZones = TimeZoneComparator.getTimeZones();
  		CTabFolder tabs = new CTabFolder(parent, SWT.BOTTOM);
  		timeZones.forEach((region, zones) -> {
  			CTabItem item = new CTabItem(tabs, SWT.NONE);
  			item.setText(region);
  			ScrolledComposite scrolled = new ScrolledComposite(tabs, SWT.H_SCROLL | SWT.V_SCROLL);
  			Composite clocks = new Composite(scrolled, SWT.NONE);
  			clocks.setBackground(clocks.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
  			item.setControl(scrolled);
  			scrolled.setContent(clocks);
  			clocks.setLayout(new RowLayout());
  			RGB rgb = new RGB(128, 128, 128);
  			zones.forEach(zone -> {
  				Group group = new Group(clocks, SWT.SHADOW_ETCHED_IN);
  				group.setText(zone.getId().split("/")[1]);
  				group.setLayout(new FillLayout());
  				new ClockWidget(group, SWT.NONE, rgb).setZone(zone);
  			});
  			Point size = clocks.computeSize(SWT.DEFAULT, SWT.DEFAULT);
  			scrolled.setMinSize(size);
  			scrolled.setExpandHorizontal(true);
  			scrolled.setExpandVertical(true);
  		});
  		tabs.setSelection(0);
  	}
  
  	@Override
  	public void setFocus() {
  	}
  
  }
  