001 /*
002 * Copyright 2012 GWT-Bootstrap
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package com.github.gwtbootstrap.client.ui.constants;
017
018 import com.github.gwtbootstrap.client.ui.base.Style;
019
020 /**
021 * The way a responsive widget is shown.
022 *
023 * @since 2.0.4.0
024 *
025 * @author Dominik Mayer
026 */
027 public enum ResponsiveStyle implements Style {
028
029 /**
030 * The widget is only shown on {@link Device#PHONE phones.}
031 */
032 VISIBLE_PHONE(true, Device.PHONE),
033
034 /**
035 * The widget is hidden on {@link Device#PHONE phones}.
036 */
037 HIDDEN_PHONE(false, Device.PHONE),
038
039 /**
040 * The widget is only shown on {@link Device#TABLET tablets.}
041 */
042 VISIBLE_TABLET(true, Device.TABLET),
043
044 /**
045 * The widget is hidden on {@link Device#TABLET tablets}.
046 */
047 HIDDEN_TABLET(false, Device.TABLET),
048
049 /**
050 * The widget is only shown on {@link Device#DESKTOP desktop computers.}
051 */
052 VISIBLE_DESKTOP(true, Device.DESKTOP),
053
054 /**
055 * The widget is hidden on {@link Device#DESKTOP desktop computers}.
056 */
057 HIDDEN_DESKTOP(false, Device.DESKTOP);
058
059 private static final String VISBILE_PREFIX = "visible-";
060
061 private static final String HIDDEN_PREFIX = "hidden-";
062
063 private boolean visible;
064
065 private Device device;
066
067 private ResponsiveStyle(boolean visible, Device device) {
068 this.visible = visible;
069 this.device = device;
070 }
071
072 /**
073 * {@inheritDoc}
074 */
075 public String get() {
076 String className;
077 if (visible)
078 className = VISBILE_PREFIX;
079 else
080 className = HIDDEN_PREFIX;
081
082 return className + device.get();
083 }
084 }