PageRenderTime 105ms CodeModel.GetById 24ms RepoModel.GetById 8ms app.codeStats 0ms

/projects/netbeans-7.3/core.nativeaccess/src/org/netbeans/core/nativeaccess/NativeWindowSystemImpl.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Java | 132 lines | 73 code | 11 blank | 48 comment | 6 complexity | 5b1eae6b6176e608a27a14db8dfb455a MD5 | raw file
  1. /*
  2. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
  3. *
  4. * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
  5. *
  6. * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  7. * Other names may be trademarks of their respective owners.
  8. *
  9. * The contents of this file are subject to the terms of either the GNU
  10. * General Public License Version 2 only ("GPL") or the Common
  11. * Development and Distribution License("CDDL") (collectively, the
  12. * "License"). You may not use this file except in compliance with the
  13. * License. You can obtain a copy of the License at
  14. * http://www.netbeans.org/cddl-gplv2.html
  15. * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
  16. * specific language governing permissions and limitations under the
  17. * License. When distributing the software, include this License Header
  18. * Notice in each file and include the License file at
  19. * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
  20. * particular file as subject to the "Classpath" exception as provided
  21. * by Oracle in the GPL Version 2 section of the License file that
  22. * accompanied this code. If applicable, add the following below the
  23. * License Header, with the fields enclosed by brackets [] replaced by
  24. * your own identifying information:
  25. * "Portions Copyrighted [year] [name of copyright owner]"
  26. *
  27. * If you wish your version of this file to be governed by only the CDDL
  28. * or only the GPL Version 2, indicate your decision by adding
  29. * "[Contributor] elects to include this software in this distribution
  30. * under the [CDDL or GPL Version 2] license." If you do not indicate a
  31. * single choice of license, a recipient has the option to distribute
  32. * your version of this file under either the CDDL, the GPL Version 2 or
  33. * to extend the choice of license to its licensees as provided above.
  34. * However, if you add GPL Version 2 code and therefore, elected the GPL
  35. * Version 2 license, then the option applies only if the new code is
  36. * made subject to such option by the copyright holder.
  37. *
  38. * Contributor(s):
  39. *
  40. * Portions Copyrighted 2008 Sun Microsystems, Inc.
  41. */
  42. package org.netbeans.core.nativeaccess;
  43. import com.sun.jna.platform.WindowUtils;
  44. import java.awt.Shape;
  45. import java.awt.Window;
  46. import java.util.logging.Level;
  47. import java.util.logging.Logger;
  48. import javax.swing.Icon;
  49. import org.netbeans.core.windows.nativeaccess.NativeWindowSystem;
  50. import org.openide.util.Utilities;
  51. /**
  52. * Implementation of NativeWindowSystem based on JNA library.
  53. *
  54. * @author S. Aubrecht
  55. */
  56. @org.openide.util.lookup.ServiceProvider(service=org.netbeans.core.windows.nativeaccess.NativeWindowSystem.class)
  57. public class NativeWindowSystemImpl extends NativeWindowSystem {
  58. private static final Logger LOG = Logger.getLogger(NativeWindowSystemImpl.class.getName());
  59. public NativeWindowSystemImpl() {
  60. }
  61. @Override
  62. public boolean isWindowAlphaSupported() {
  63. if( Utilities.isMac() ) {
  64. String version = System.getProperty("java.version"); //NOI18N
  65. if( null != version && version.startsWith("1.7" ) ) //NOI18N
  66. return false;
  67. }
  68. boolean res = false;
  69. try {
  70. res = WindowUtils.isWindowAlphaSupported();
  71. } catch( ThreadDeath td ) {
  72. throw td;
  73. } catch (UnsatisfiedLinkError e) {
  74. // E.g. "Unable to load library 'X11': libX11.so: cannot open shared object file: No such file or directory"
  75. // on headless build machine (missing libx11-dev.deb)
  76. LOG.log(Level.FINE, null, e);
  77. } catch( Throwable e ) {
  78. LOG.log(Level.INFO, null, e);
  79. }
  80. return res;
  81. }
  82. private static boolean is32Bit() {
  83. String osarch = System.getProperty("os.arch"); //NOI18N
  84. for (String x : new String[]{"x86", "i386", "i486", "i586", "i686"}) { //NOI18N
  85. if (x.equals(osarch)) {
  86. return true;
  87. }
  88. }
  89. return false;
  90. }
  91. @Override
  92. public void setWindowAlpha(Window w, float alpha) {
  93. try {
  94. WindowUtils.setWindowAlpha(w, alpha);
  95. } catch( ThreadDeath td ) {
  96. throw td;
  97. } catch( Throwable e ) {
  98. LOG.log(Level.INFO, null, e);
  99. }
  100. }
  101. @Override
  102. public void setWindowMask(Window w, Shape mask) {
  103. try {
  104. WindowUtils.setWindowMask(w, mask);
  105. } catch( ThreadDeath td ) {
  106. throw td;
  107. } catch( Throwable e ) {
  108. LOG.log(Level.INFO, null, e);
  109. }
  110. }
  111. @Override
  112. public void setWindowMask(Window w, Icon mask) {
  113. try {
  114. WindowUtils.setWindowMask(w, mask);
  115. } catch( ThreadDeath td ) {
  116. throw td;
  117. } catch( Throwable e ) {
  118. LOG.log(Level.INFO, null, e);
  119. }
  120. }
  121. }