1 /*******************************************************************************
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.g2d.element.handler.impl;
14 import java.util.Collections;
17 import org.simantics.g2d.element.ElementHints;
18 import org.simantics.g2d.element.IElement;
19 import org.simantics.g2d.element.handler.ElementLayers;
20 import org.simantics.g2d.layers.ILayer;
21 import org.simantics.g2d.layers.ILayers;
24 * @author Antti Villberg
26 public class SimpleElementLayers implements ElementLayers {
28 public static final SimpleElementLayers INSTANCE = new SimpleElementLayers();
30 private static final long serialVersionUID = 379502115902223354L;
33 public boolean isVisible(IElement e, ILayers layers) {
36 assert (layers != null);
38 Set<ILayer> elementLayers = (Set<ILayer>) e.getHint(ElementHints.KEY_VISIBLE_LAYERS);
39 if (elementLayers == null)
42 return !Collections.disjoint(layers.getVisibleLayers(), elementLayers);
47 public boolean isVisible(IElement e, ILayer layer) {
49 Set<ILayer> elementLayers = (Set<ILayer>) e.getHint(ElementHints.KEY_VISIBLE_LAYERS);
50 if (elementLayers == null)
53 // System.out.println("Testing: '" + layer.getName() + "'");
54 // for(ILayer l : elementLayers) System.out.println("elementLayer: '" + l.getName() + "'");
55 // System.out.println("result = " + elementLayers.contains(layer));
57 return elementLayers.contains(layer);
62 public boolean isFocusable(IElement e, ILayers layers) {
65 assert (layers != null);
67 Set<ILayer> elementLayers = (Set<ILayer>) e.getHint(ElementHints.KEY_FOCUS_LAYERS);
68 if (elementLayers == null)
71 return !Collections.disjoint(layers.getVisibleLayers(), elementLayers);
76 public boolean isFocusable(IElement e, ILayer layer) {
78 Set<ILayer> elementLayers = (Set<ILayer>) e.getHint(ElementHints.KEY_FOCUS_LAYERS);
79 if (elementLayers == null)
82 return elementLayers.contains(layer);