Package ru.org.linux.user

Source Code of ru.org.linux.user.Profile

/*
* Copyright 1998-2014 Linux.org.ru
*    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 ru.org.linux.user;

import ru.org.linux.site.DefaultProfile;
import ru.org.linux.tracker.TrackerFilterEnum;
import ru.org.linux.util.ProfileHashtable;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Profile {
  public static final String STYLE_PROPERTY = "style";
  public static final String FORMAT_MODE_PROPERTY = "format.mode";
  public static final String HOVER_PROPERTY = "hover";
  public static final String MESSAGES_PROPERTY = "messages";
  public static final String NEWFIRST_PROPERTY = "newfirst";
  public static final String TOPICS_PROPERTY = "topics";
  public static final String HIDE_ADSENSE_PROPERTY = "hideAdsense";
  public static final String PHOTOS_PROPERTY = "photos";
  public static final String MAIN_GALLERY_PROPERTY = "mainGallery";
  public static final String AVATAR_PROPERTY = "avatar";
  public static final String SHOW_ANONYMOUS_PROPERTY = "showanonymous";
  public static final String BOXES_MAIN2_PROPERTY = "main2";
  public static final String SHOW_SOCIAL_PROPERTY = "showSocial";
  public static final String TRACKER_MODE = "trackerMode";

  private String style;
  private String formatMode;
  private boolean useHover;
  private int messages;
  private boolean showNewFirst;
  private int topics;
  private boolean showPhotos;
  private boolean hideAdsense;
  private boolean showGalleryOnMain;
  private String avatarMode;
  private boolean showAnonymous;
  private boolean showSocial;
  private TrackerFilterEnum trackerMode;

  private List<String> boxes;

  public Profile(ProfileHashtable p, List<String> boxes) {
    style = fixStyle(p.getString(STYLE_PROPERTY));
    formatMode = fixFormat(p.getString(FORMAT_MODE_PROPERTY));
    useHover = p.getBoolean(HOVER_PROPERTY);
    messages = p.getInt(MESSAGES_PROPERTY);
    showNewFirst = p.getBoolean(NEWFIRST_PROPERTY);
    topics = p.getInt(TOPICS_PROPERTY);
    showPhotos = p.getBoolean(PHOTOS_PROPERTY);
    hideAdsense = p.getBoolean(HIDE_ADSENSE_PROPERTY);
    showGalleryOnMain = p.getBoolean(MAIN_GALLERY_PROPERTY);
    avatarMode = p.getString(AVATAR_PROPERTY);
    showAnonymous = p.getBoolean(SHOW_ANONYMOUS_PROPERTY);
    showSocial = p.getBoolean(SHOW_SOCIAL_PROPERTY);
    trackerMode = TrackerFilterEnum.getByValue(p.getString(TRACKER_MODE)).or(DefaultProfile.DEFAULT_TRACKER_MODE);

    this.boxes = boxes;
  }

  public Map<String, String> getSettings() {
    ProfileHashtable p = new ProfileHashtable(DefaultProfile.getDefaultProfile(), new HashMap<String, String>());

    p.setString(STYLE_PROPERTY, style);
    p.setString(FORMAT_MODE_PROPERTY, formatMode);
    p.setBoolean(HOVER_PROPERTY, useHover);
    p.setInt(MESSAGES_PROPERTY, messages);
    p.setBoolean(NEWFIRST_PROPERTY, showNewFirst);
    p.setInt(TOPICS_PROPERTY, topics);
    p.setBoolean(PHOTOS_PROPERTY, showPhotos);
    p.setBoolean(HIDE_ADSENSE_PROPERTY, hideAdsense);
    p.setBoolean(MAIN_GALLERY_PROPERTY, showGalleryOnMain);
    p.setString(AVATAR_PROPERTY, avatarMode);
    p.setBoolean(SHOW_ANONYMOUS_PROPERTY, showAnonymous);
    p.setBoolean(SHOW_SOCIAL_PROPERTY, showSocial);
    p.setString(TRACKER_MODE, trackerMode.getValue());

    return p.getSettings();
  }

  public String getStyle() {
    return style;
  }

  public void setStyle(String style) {
    this.style = fixStyle(style);
  }

  public String getFormatMode() {
    return formatMode;
  }

  public void setFormatMode(String formatMode) {
    this.formatMode = fixFormat(formatMode);
  }

  public boolean isUseHover() {
    return useHover;
  }

  public void setUseHover(boolean hover) {
    useHover = hover;
  }

  public int getMessages() {
    return messages;
  }

  public void setMessages(int messages) {
    this.messages = messages;
  }

  public boolean isShowNewFirst() {
    return showNewFirst;
  }

  public void setShowNewFirst(boolean newFirst) {
    showNewFirst = newFirst;
  }

  public int getTopics() {
    return topics;
  }

  public void setTopics(int topics) {
    this.topics = topics;
  }

  public boolean isShowPhotos() {
    return showPhotos;
  }

  public void setShowPhotos(boolean showPhotos) {
    this.showPhotos = showPhotos;
  }

  public boolean isHideAdsense() {
    return hideAdsense;
  }

  public void setHideAdsense(boolean hideAdsense) {
    this.hideAdsense = hideAdsense;
  }

  public boolean isShowGalleryOnMain() {
    return showGalleryOnMain;
  }

  public void setShowGalleryOnMain(boolean showGalleryOnMain) {
    this.showGalleryOnMain = showGalleryOnMain;
  }

  public String getAvatarMode() {
    return avatarMode;
  }

  public void setAvatarMode(String avatarMode) {
    this.avatarMode = avatarMode;
  }

  public boolean isShowAnonymous() {
    return showAnonymous;
  }

  public void setShowAnonymous(boolean showAnonymous) {
    this.showAnonymous = showAnonymous;
  }

  public boolean isMiniNewsBoxletOnMainPage() {
    return getBoxlets().contains("lastMiniNews");
  }

  private static String fixFormat(String mode) {
    if (!"quot".equals(mode) &&
        !"ntobr".equals(mode) &&
        !"lorcode".equals(mode)) {
      return (String) DefaultProfile.getDefaultProfile().get("format.mode");
    }

    return mode;
  }

  private static String fixStyle(String style) {
    if (!DefaultProfile.isStyle(style)) {
      return (String) DefaultProfile.getDefaultProfile().get(STYLE_PROPERTY);
    }

    return style;
  }

  public TrackerFilterEnum getTrackerMode() {
    return trackerMode;
  }

  public void setTrackerMode(TrackerFilterEnum trackerMode) {
    this.trackerMode = trackerMode;
  }

  @Nonnull
  public List<String> getBoxlets() {
    List<String> list = boxes;

    if (list==null) {
      return (List<String>) DefaultProfile.getDefaultProfile().get(BOXES_MAIN2_PROPERTY);
    } else {
      return list;
    }
  }

  @Nullable
  public List<String> getCustomBoxlets() {
    return boxes;
  }

  public void setBoxlets(List<String> list) {
    boxes = new ArrayList<>(list);
  }

  public boolean isShowSocial() {
    return showSocial;
  }

  public void setShowSocial(boolean showSocial) {
    this.showSocial = showSocial;
  }

  public static Profile createDefault() {
    return new Profile(new ProfileHashtable(DefaultProfile.getDefaultProfile(), new HashMap<String, String>()), null);
  }
}
TOP

Related Classes of ru.org.linux.user.Profile

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.