Java tutorial
package it.unibz.inf.ontop.protege.utils; /* * #%L * ontop-protege4 * %% * Copyright (C) 2009 - 2013 KRDB Research Centre. Free University of Bozen Bolzano. * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import com.google.common.collect.Iterables; import java.awt.*; import java.util.ArrayList; import java.util.List; public class CustomTraversalPolicy extends FocusTraversalPolicy { List<Component> order; public CustomTraversalPolicy(List<Component> order) { this.order = new ArrayList<>(order.size()); this.order.addAll(order); } public void setComponent(Component element, int index) { order.set(index, element); } public Component getComponentAfter(Container focusCycleRoot, Component aComponent) { int idx = (order.indexOf(aComponent) + 1) % order.size(); return order.get(idx); } public Component getComponentBefore(Container focusCycleRoot, Component aComponent) { int idx = order.indexOf(aComponent) - 1; if (idx < 0) { idx = order.size() - 1; } return order.get(idx); } public Component getDefaultComponent(Container focusCycleRoot) { return order.get(0); } public Component getLastComponent(Container focusCycleRoot) { return Iterables.getLast(order); } public Component getFirstComponent(Container focusCycleRoot) { return order.get(0); } }