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

com.jidesoft.dialog.PageList Maven / Gradle / Ivy

There is a newer version: 3.6.18
Show newest version
/*
 * @(#)PageList.java
 *
 * Copyright 2002 - 2003 JIDE Software. All rights reserved.
 */
package com.jidesoft.dialog;

import javax.swing.*;
import java.util.ArrayList;
import java.util.List;

/**
 * A list of AbstractDialogPage or its subclasses. It is used by
 * MultiplePageDialog and Wizard.
 */
public class PageList extends DefaultComboBoxModel {
    /**
     * If you know the full title of any page, use this method to get
     * the actual page from the list.
     *
     * @param title the full title.
     * @return the page with the title.
     */
    public AbstractDialogPage getPageByFullTitle(String title) {
        for (int i = 0; i < getSize(); i++) {
            AbstractDialogPage page = (AbstractDialogPage) getElementAt(i);
            if (page.getFullTitle().equals(title)) {
                return page;
            }
        }
        return null;
    }

    /**
     * Gets the page index if you know the full title of the page.
     *
     * @param title the full title.
     * @return the page index.
     */
    public int getPageIndexByFullTitle(String title) {
        for (int i = 0; i < getSize(); i++) {
            AbstractDialogPage page = (AbstractDialogPage) getElementAt(i);
            if (page.getFullTitle().equals(title)) {
                return i;
            }
        }
        return -1;
    }

    /**
     * Gets the page count in the list.
     *
     * @return the page count in the list.
     */
    public int getPageCount() {
        return getSize();
    }

    /**
     * Appends a page to the end of the list.
     *
     * @param page the page to be appended.
     */
    public void append(AbstractDialogPage page) {
        addElement(page);
    }

    /**
     * Removes a page from the page list.
     *
     * @param page page to be removed.
     */
    public void remove(AbstractDialogPage page) {
        removeElement(page);
    }

    /**
     * Clear the page list.
     */
    public void clear() {
        removeAllElements();
    }

    /**
     * Inserts a page after the page with the specified full title. If we cannot find
     * the page with the specified title, the page will be added to the end as append(page).
     *
     * @param page  page to be inserted.
     * @param title the title of the page after when the new page will be inserted.
     */
    public void insertAfter(AbstractDialogPage page, String title) {
        int index = getPageIndexByFullTitle(title);
        if (index == -1 || index == getPageCount() - 1) {
            append(page);
        }
        else {
            insertElementAt(page, index + 1);
        }
    }

    /**
     * Gets the page at position.
     *
     * @param i the index
     * @return the page.
     */
    public AbstractDialogPage getPage(int i) {
        return (AbstractDialogPage) getElementAt(i);
    }

    /**
     * Gets the all page titles as vector.
     *
     * @return the vector which has all the page titles.
     */
    public List getPageTitlesAsList() {
        List list = new ArrayList();
        for (int i = 0; i < getPageCount(); i++) {
            AbstractDialogPage page = getPage(i);
            list.add(page.getTitle());
        }
        return list;
    }

    /**
     * Gets the current selected page.
     *
     * @return the current selected page.
     */
    public AbstractDialogPage getCurrentPage() {
        return ((AbstractDialogPage) getSelectedItem());
    }

    /**
     * Sets the current selected page.
     *
     * @param page the dialog page.
     */
    public void setCurrentPage(AbstractDialogPage page) {
        setSelectedItem(page);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy