Files
Brainstorm/Foundation SWT/src/com/foundation/view/swt/SwtWrapperViewContext.java

89 lines
3.6 KiB
Java
Raw Normal View History

2014-05-30 10:31:51 -07:00
/*
* Copyright (c) 2005,2006 Declarative Engineering LLC.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Declarative Engineering LLC
* verson 1 which accompanies this distribution, and is available at
* http://declarativeengineering.com/legal/DE_Developer_License_v1.txt
*/
package com.foundation.view.swt;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Display;
import com.common.comparison.Comparator;
import com.common.util.LiteHashMap;
import com.foundation.view.DisplayMetadata;
import com.foundation.view.IViewContext;
import com.foundation.view.IViewRequestHandler;
import com.foundation.view.ViewSystemMetadata;
/*
* This class provides access to the non-view specific view system functionality.
*/
public class SwtWrapperViewContext implements IViewContext {
/** The one and only SWT view context object. */
private SwtWrapperRequestHandler requestHandler = null;
/** An application data map that allows the application to store key value pairs associated with the view context. */
private LiteHashMap applicationDataMap = null;
/** The application specific context data. */
private Object applicationData = null;
/**
* SwtWrapperViewContext constructor.
* @param display The display that is supported.
*/
public SwtWrapperViewContext(Display display) {
super();
requestHandler = new SwtWrapperRequestHandler(display);
}//SwtWrapperViewContext()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#getViewSystemMetadata()
*/
public ViewSystemMetadata getViewSystemMetadata() {
org.eclipse.swt.widgets.Monitor[] monitors = ((SwtWrapperRequestHandler) getRequestHandler()).getDisplay().getMonitors();
DisplayMetadata[] displayMetadata = new DisplayMetadata[monitors.length];
ViewSystemMetadata viewSystemMetadata = new ViewSystemMetadata(displayMetadata);
//Collect information about each monitor.//
for(int monitorIndex = 0; monitorIndex < monitors.length; monitorIndex++) {
Rectangle bounds = monitors[monitorIndex].getBounds();
Rectangle clientArea = monitors[monitorIndex].getClientArea();
displayMetadata[monitorIndex] = new DisplayMetadata(new int[] {bounds.x, bounds.y, bounds.width, bounds.height}, new int[] {clientArea.x, clientArea.y, clientArea.width, clientArea.height});
}//for//
return viewSystemMetadata;
}//getViewSystemMetadata()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#getRequestHandler()
*/
public IViewRequestHandler getRequestHandler() {
return requestHandler;
}//getRequestHandler()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#getApplicationData()
*/
public Object getApplicationData() {
return applicationData;
}//getApplicationData()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#setApplicationData(java.lang.Object)
*/
public void setApplicationData(Object applicationData) {
this.applicationData = applicationData;
}//setApplicationData()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#getApplicationData(java.lang.Object)
*/
public Object getApplicationData(Object key) {
return applicationDataMap == null ? null : applicationDataMap.get(key);
}//getApplicationData()//
/* (non-Javadoc)
* @see com.foundation.view.IViewContext#setApplicationData(java.lang.Object, java.lang.Object)
*/
public void setApplicationData(Object key, Object applicationData) {
if(applicationDataMap == null) {
applicationDataMap = new LiteHashMap(10, Comparator.getLogicalComparator(), Comparator.getLogicalComparator());
}//if//
applicationDataMap.put(key, applicationData);
}//setApplicationData()//
}//SwtWrapperViewContext//