    rev 4839 : RT-2529: Locale specific runtime errors (Turkish)

       1 /*
       2  * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
       3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       4  *
       5  * This code is free software; you can redistribute it and/or modify it
       6  * under the terms of the GNU General Public License version 2 only, as
       7  * published by the Free Software Foundation.  Oracle designates this
       8  * particular file as subject to the "Classpath" exception as provided
       9  * by Oracle in the LICENSE file that accompanied this code.
      10  *
      11  * This code is distributed in the hope that it will be useful, but WITHOUT
      12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      14  * version 2 for more details (a copy is included in the LICENSE file that
      15  * accompanied this code).
      16  *
      17  * You should have received a copy of the GNU General Public License version
      18  * 2 along with this work; if not, write to the Free Software Foundation,
      19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
      20  *
      21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
      22  * or visit www.oracle.com if you need additional information or have any
      23  * questions.
      24  */
      25 package com.sun.glass.ui;
      26
      27 import java.security.AccessController;
      28 import java.security.PrivilegedAction;
      29 import java.util.Locale;
      30
      31 final class Platform {
      32
      33     public static final String MAC = "Mac";
      34     public static final String WINDOWS = "Win";
      35     public static final String GTK = "Gtk";
      36     public static final String IOS = "Ios";
      37     public static final String UNKNOWN = "unknown";
      38
      39     static private String type = null;
      40
      41     static public synchronized String determinePlatform() {
      42         if (type == null) {
      43
      44             // Provide for a runtime override, allowing EGL for example
      45             String userPlatform =
      46                 AccessController.doPrivileged(new PrivilegedAction<String>() {
      47                     public String run() {
      48                         return System.getProperty("glass.platform");
      49                     }
      50                 });
      51
      52             if (userPlatform != null) {
      53                 if (userPlatform.equals("macosx"))
      54                    type = MAC;
      55                 else if (userPlatform.equals("windows"))
      56                    type = WINDOWS;
      57                 else if (userPlatform.equals("linux"))
      58                    type = GTK;
      59                 else if (userPlatform.equals("gtk"))
      60                    type = GTK;
      61                 else if (userPlatform.equals("ios"))
      62                    type = IOS;
      63                 else
      64                    type = userPlatform;
      65                 return type;
      66             }
      67
      68             String osName = System.getProperty("os.name");
      69             String osNameLowerCase = osName.toLowerCase(Locale.ROOT);
      70             if (osNameLowerCase.startsWith("mac") || osNameLowerCase.startsWith("darwin")) {
      71                 type = MAC;
      72             } else if (osNameLowerCase.startsWith("wind")) {
      73                 type = WINDOWS;
      74             } else if (osNameLowerCase.startsWith("linux")) {
      75                 type = GTK;
      76             }
      77         }
      78
      79         return type;
      80     }
      81 }
    --- EOF ---