/* * #%L * gitools-ui-platform * %% * Copyright (C) 2013 Universitat Pompeu Fabra - Biomedical Genomics group * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ package org.gitools.ui.platform.wizard; import org.gitools.ui.platform.dialog.MessageStatus; import org.gitools.ui.platform.help.HelpContext; import org.gitools.ui.platform.settings.ISettingsSection; import javax.swing.*; import java.util.ArrayList; import java.util.List; public abstract class AbstractWizardPage extends JPanel implements IWizardPage, ISettingsSection { private static final long serialVersionUID = -4330234851091328953L; private String id; private IWizard wizard; private boolean pageComplete; private String title = ""; private Icon logo; private MessageStatus status = MessageStatus.INFO; private String message = ""; private HelpContext helpContext; private final List<IWizardPageUpdateListener> listeners = new ArrayList<>(); protected AbstractWizardPage() { this(null); } protected AbstractWizardPage(String id) { this.id = id != null ? id : this.getClass().getCanonicalName(); this.pageComplete = false; } @Override public String getId() { return id; } @Override public void setId(String id) { this.id = id; } @Override public IWizard getWizard() { return wizard; } @Override public void setWizard(IWizard wizard) { this.wizard = wizard; } @Override public boolean isComplete() { return pageComplete; } protected void setComplete(boolean complete) { this.pageComplete = complete; fireUpdated(); } @Override @Deprecated public JComponent createControls() { return getPanel(); } @Override public void updateControls() { // do nothing } @Override public void updateModel() { // do nothing } @Override public String getTitle() { return title; } public void setTitle(String title) { this.title = title; fireUpdated(); } @Override public Icon getLogo() { return logo; } protected void setLogo(Icon logo) { this.logo = logo; } @Override public MessageStatus getStatus() { return this.status; } protected void setStatus(MessageStatus status) { this.status = status; fireUpdated(); } @Override public String getMessage() { return message; } @Override public void setMessage(String message) { this.message = message; fireUpdated(); } @Override public HelpContext getHelpContext() { return helpContext; } @Override public void addPageUpdateListener(IWizardPageUpdateListener listener) { listeners.add(listener); } @Override public void removePageUpdateListener(IWizardPageUpdateListener listener) { listeners.remove(listener); } @Override public void setHelpContext(HelpContext helpContext) { this.helpContext = helpContext; } public void setMessage(MessageStatus status, String message) { this.status = status; this.message = message; fireUpdated(); } protected void fireUpdated() { for (IWizardPageUpdateListener l : listeners) l.pageUpdated(this); } public String getName() { return getTitle(); } public JPanel getPanel() { return this; } @Override public boolean isDirty() { return false; } }