001: /*
002: * Copyright 2000,2005 wingS development team.
003: *
004: * This file is part of wingS (http://wingsframework.org).
005: *
006: * wingS is free software; you can redistribute it and/or modify
007: * it under the terms of the GNU Lesser General Public License
008: * as published by the Free Software Foundation; either version 2.1
009: * of the License, or (at your option) any later version.
010: *
011: * Please see COPYING for the complete licence.
012: */
013: package org.wings.session;
014:
015: import java.io.Serializable;
016:
017: /**
018: * Typesafe enumeration class of operating systems on browsers client side.
019: *
020: * <p>Example usage of how to get the browser type</p>
021: * <code>SessionManager.getSession().getUserAgent().getBrowserType()</code>
022: */
023: public class BrowserType implements Serializable {
024: public static class BrowserID implements Serializable {
025: public static final int UNKNOWN = 0;
026: public static final int GECKO = 1;
027: public static final int MOZILLA = 2;
028: public static final int IE = 3;
029: public static final int OPERA = 4;
030: public static final int KONQUEROR = 5;
031: }
032:
033: /**
034: * Unknown browser type
035: */
036: public static final BrowserType UNKNOWN = new BrowserType(
037: BrowserID.UNKNOWN, "default", "Unknown");
038:
039: /**
040: * Gecko based browser type.
041: */
042: public static final BrowserType GECKO = new BrowserType(
043: BrowserID.GECKO, "gecko", "Gecko");
044:
045: /**
046: * Old mozilla browser type.
047: */
048: public static final BrowserType MOZILLA = new BrowserType(
049: BrowserID.MOZILLA, "mozilla", "Mozilla (non-Gecko)");
050:
051: /**
052: * Internet Explorere variant.
053: */
054: public static final BrowserType IE = new BrowserType(BrowserID.IE,
055: "msie", "Internet Explorer");
056:
057: /**
058: * Opera browser type on Linux/KDE.
059: */
060: public static final BrowserType OPERA = new BrowserType(
061: BrowserID.OPERA, "opera", "Opera");
062:
063: /**
064: * Konqueror browser type on Linux/KDE.
065: */
066: public static final BrowserType KONQUEROR = new BrowserType(
067: BrowserID.KONQUEROR, "konqueror", "Konqueror");
068:
069: private int id;
070: private String description;
071: private String shortName;
072:
073: /**
074: * Typesafe enum constructor.
075: */
076: private BrowserType(int id, String shortName, String description) {
077: this .id = id;
078: this .shortName = shortName;
079: this .description = description;
080: }
081:
082: /**
083: * @return A unique id for this browser type.
084: */
085: public int getId() {
086: return id;
087: }
088:
089: /**
090: * @return Clear-Text browserName of this browser type
091: */
092: public String getDescription() {
093: return description;
094: }
095:
096: /**
097: * @return Short name, used also to assemble i.e. css. file names
098: */
099: public String getShortName() {
100: return shortName;
101: }
102:
103: public String toString() {
104: return getDescription();
105: }
106: }
|