/* * Copyright 2014 Loic Merckel * * 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. */ package org.swiftexplorer.gui.util; import java.awt.Component; import java.awt.Frame; import javax.accessibility.AccessibleContext; import javax.swing.AbstractButton; public class SwingUtils { private SwingUtils () { super () ;} public static <T extends Component> T setAccessibleContext (T comp) { return setAccessibleContext (comp, null) ; } public static <T extends Component> T setAccessibleContext (T comp, String name) { if (comp == null) return comp; AccessibleContext ac = comp.getAccessibleContext() ; if (ac == null) return comp ; String text = null ; if (name != null && !name.isEmpty()) text = name ; else if (comp instanceof AbstractButton) text = ((AbstractButton)comp).getText() ; else text = comp.getName(); if (text != null) { ac.setAccessibleName(text); ac.setAccessibleDescription(text) ; } return comp ; } public static Frame tryFindSuitableFrameOwner () { Frame owner = null; // find a suitable owner, if any Frame[] allFrames = Frame.getFrames(); if (allFrames != null) { for (Frame frame : allFrames) { if (frame == null) continue; if (!frame.isShowing()) continue; if (!frame.isActive()) continue; owner = frame; break; } } return owner ; } }