All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.pushingpixels.radiance.component.api.ribbon.model.RibbonGalleryPresentationModel Maven / Gradle / Ivy

Go to download

Demonstrating the abilities of the Swing UI Toolkit swingset2 and swingx aka swingset3

The newest version!
/*
 * Copyright (c) 2005-2021 Radiance Kirill Grouchnikov. All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  o Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 *  o Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 *  o Neither the name of the copyright holder nor the names of
 *    its contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
package org.pushingpixels.radiance.component.api.ribbon.model;

import org.pushingpixels.radiance.component.api.common.CommandButtonPresentationState;
import org.pushingpixels.radiance.component.api.common.model.ImmutablePresentationModel;
import org.pushingpixels.radiance.component.api.ribbon.JRibbonBand;

import java.util.Collections;
import java.util.Map;

public class RibbonGalleryPresentationModel implements ImmutablePresentationModel {
    private Map preferredVisibleCommandCounts;

    /**
     * Preferred maximum number of button columns for the popup panel.
     */
    private int preferredPopupMaxCommandColumns;

    /**
     * Preferred maximum number of visible button rows for the popup panel.
     */
    private int preferredPopupMaxVisibleCommandRows;

    private CommandButtonPresentationState commandPresentationState;

    private String expandKeyTip;

    private RibbonGalleryPresentationModel() {
    }

    public static Builder builder() {
        return new Builder();
    }

    public Map getPreferredVisibleCommandCounts() {
        return preferredVisibleCommandCounts;
    }

    public int getPreferredPopupMaxCommandColumns() {
        return preferredPopupMaxCommandColumns;
    }

    public int getPreferredPopupMaxVisibleCommandRows() {
        return preferredPopupMaxVisibleCommandRows;
    }

    public CommandButtonPresentationState getCommandPresentationState() {
        return commandPresentationState;
    }

    public String getExpandKeyTip() {
        return this.expandKeyTip;
    }

    public static class Builder {
        private Map preferredVisibleCommandCounts;
        private int preferredPopupMaxCommandColumns = -1;
        private int preferredPopupMaxVisibleCommandRows = -1;
        private CommandButtonPresentationState commandPresentationState
                = CommandButtonPresentationState.BIG;
        private String expandKeyTip;

        public Builder setPreferredVisibleCommandCounts(
                Map preferredVisibleCommandCounts) {
            this.preferredVisibleCommandCounts = preferredVisibleCommandCounts;
            return this;
        }

        public Builder setPreferredPopupMaxVisibleCommandRows(
                int preferredPopupMaxVisibleCommandRows) {
            this.preferredPopupMaxVisibleCommandRows = preferredPopupMaxVisibleCommandRows;
            return this;
        }

        public Builder setPreferredPopupMaxCommandColumns(
                int preferredPopupMaxCommandColumns) {
            this.preferredPopupMaxCommandColumns = preferredPopupMaxCommandColumns;
            return this;
        }

        public Builder setCommandPresentationState(
                CommandButtonPresentationState commandPresentationState) {
            this.commandPresentationState = commandPresentationState;
            return this;
        }

        public Builder setExpandKeyTip(String expandKeyTip) {
            this.expandKeyTip = expandKeyTip;
            return this;
        }

        public RibbonGalleryPresentationModel build() {
            RibbonGalleryPresentationModel presentationModel = new RibbonGalleryPresentationModel();
            presentationModel.preferredVisibleCommandCounts =
                    (this.preferredVisibleCommandCounts == null) ? null :
                            Collections.unmodifiableMap(this.preferredVisibleCommandCounts);
            presentationModel.preferredPopupMaxVisibleCommandRows =
                    this.preferredPopupMaxVisibleCommandRows;
            presentationModel.preferredPopupMaxCommandColumns =
                    this.preferredPopupMaxCommandColumns;
            presentationModel.commandPresentationState = this.commandPresentationState;
            presentationModel.expandKeyTip = this.expandKeyTip;
            return presentationModel;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy