com.liferay.document.library.web.internal.settings.DLPortletInstanceSettings.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.document.library.web.internal.settings.DLPortletInstanceSettings.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.document.library.web.internal.settings;

import com.liferay.document.library.kernel.model.DLFolderConstants;
import com.liferay.document.library.kernel.util.DLUtil;
import com.liferay.document.library.web.constants.DLPortletKeys;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.Layout;
import com.liferay.portal.kernel.settings.FallbackKeys;
import com.liferay.portal.kernel.settings.ParameterMapSettings;
import com.liferay.portal.kernel.settings.PortletInstanceSettingsLocator;
import com.liferay.portal.kernel.settings.Settings;
import com.liferay.portal.kernel.settings.SettingsFactoryUtil;
import com.liferay.portal.kernel.settings.TypedSettings;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.PropsKeys;

import java.util.Map;

/**
 * @author Sergio Gonzlez
 */
@Settings.Config(settingsIds = { DLPortletKeys.DOCUMENT_LIBRARY, DLPortletKeys.DOCUMENT_LIBRARY_ADMIN,
        DLPortletKeys.MEDIA_GALLERY_DISPLAY })
public class DLPortletInstanceSettings {

    public static DLPortletInstanceSettings getInstance(Layout layout, String portletId) throws PortalException {

        Settings settings = SettingsFactoryUtil.getSettings(new PortletInstanceSettingsLocator(layout, portletId));

        return new DLPortletInstanceSettings(settings);
    }

    public static DLPortletInstanceSettings getInstance(Layout layout, String portletId,
            Map<String, String[]> parameterMap) throws PortalException {

        Settings settings = SettingsFactoryUtil.getSettings(new PortletInstanceSettingsLocator(layout, portletId));

        Settings parameterMapSettings = new ParameterMapSettings(parameterMap, settings);

        return new DLPortletInstanceSettings(parameterMapSettings);
    }

    public static void registerSettingsMetadata() {
        SettingsFactoryUtil.registerSettingsMetadata(DLPortletInstanceSettings.class, null, _getFallbackKeys());
    }

    public DLPortletInstanceSettings(Settings settings) {
        _typedSettings = new TypedSettings(settings);
    }

    public String[] getDisplayViews() {
        return _typedSettings.getValues("displayViews");
    }

    public int getEntriesPerPage() {
        return _typedSettings.getIntegerValue("entriesPerPage");
    }

    public String[] getEntryColumns() {
        return _typedSettings.getValues("entryColumns");
    }

    public int getFileEntriesPerPage() {
        return _typedSettings.getIntegerValue("fileEntriesPerPage");
    }

    public String[] getFileEntryColumns() {
        return _typedSettings.getValues("fileEntryColumns");
    }

    public String[] getFolderColumns() {
        return _typedSettings.getValues("folderColumns");
    }

    public int getFoldersPerPage() {
        return _typedSettings.getIntegerValue("foldersPerPage");
    }

    public String[] getMimeTypes() {
        return _typedSettings.getValues("mimeTypes", _MIME_TYPES_DEFAULT);
    }

    public long getRootFolderId() {
        return _typedSettings.getLongValue("rootFolderId", DLFolderConstants.DEFAULT_PARENT_FOLDER_ID);
    }

    public boolean isEnableCommentRatings() {
        return _typedSettings.getBooleanValue("enableCommentRatings");
    }

    public boolean isEnableFileEntryDrafts() {
        return _typedSettings.getBooleanValue("enableFileEntryDrafts");
    }

    public boolean isEnableRatings() {
        return _typedSettings.getBooleanValue("enableRatings");
    }

    public boolean isEnableRelatedAssets() {
        return _typedSettings.getBooleanValue("enableRelatedAssets");
    }

    public boolean isShowActions() {
        return _typedSettings.getBooleanValue("showActions");
    }

    public boolean isShowFoldersSearch() {
        return _typedSettings.getBooleanValue("showFoldersSearch");
    }

    public boolean isShowSubfolders() {
        return _typedSettings.getBooleanValue("showSubfolders");
    }

    public boolean isShowTabs() {
        return _typedSettings.getBooleanValue("showTabs");
    }

    private static FallbackKeys _getFallbackKeys() {
        FallbackKeys fallbackKeys = new FallbackKeys();

        fallbackKeys.add("displayViews", PropsKeys.DL_DISPLAY_VIEWS);
        fallbackKeys.add("enableCommentRatings", PropsKeys.DL_COMMENT_RATINGS_ENABLED);
        fallbackKeys.add("enableFileEntryDrafts", PropsKeys.DL_FILE_ENTRY_DRAFTS_ENABLED);
        fallbackKeys.add("enableRatings", PropsKeys.DL_RATINGS_ENABLED);
        fallbackKeys.add("enableRelatedAssets", PropsKeys.DL_RELATED_ASSETS_ENABLED);
        fallbackKeys.add("entriesPerPage", PropsKeys.SEARCH_CONTAINER_PAGE_DEFAULT_DELTA);
        fallbackKeys.add("entryColumns", PropsKeys.DL_ENTRY_COLUMNS);
        fallbackKeys.add("fileEntryColumns", PropsKeys.DL_FILE_ENTRY_COLUMNS);
        fallbackKeys.add("folderColumns", PropsKeys.DL_FOLDER_COLUMNS);
        fallbackKeys.add("foldersPerPage", PropsKeys.SEARCH_CONTAINER_PAGE_DEFAULT_DELTA);
        fallbackKeys.add("fileEntriesPerPage", PropsKeys.SEARCH_CONTAINER_PAGE_DEFAULT_DELTA);
        fallbackKeys.add("showActions", PropsKeys.DL_ACTIONS_VISIBLE);
        fallbackKeys.add("showFoldersSearch", PropsKeys.DL_FOLDERS_SEARCH_VISIBLE);
        fallbackKeys.add("showSubfolders", PropsKeys.DL_SUBFOLDERS_VISIBLE);
        fallbackKeys.add("showTabs", PropsKeys.DL_TABS_VISIBLE);

        return fallbackKeys;
    }

    private static final String[] _MIME_TYPES_DEFAULT = ArrayUtil
            .toStringArray(DLUtil.getAllMediaGalleryMimeTypes());

    static {
        SettingsFactoryUtil.registerSettingsMetadata(DLPortletInstanceSettings.class, null, _getFallbackKeys());
    }

    private final TypedSettings _typedSettings;

}