/* * RapidMiner * * Copyright (C) 2001-2011 by Rapid-I and the contributors * * Complete list of developers available at our web site: * * http://rapid-i.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.rapidminer.repository.gui; import java.awt.Component; import java.util.HashMap; import java.util.Map; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.ButtonGroup; import javax.swing.JRadioButton; import com.rapidminer.gui.RapidMinerGUI; import com.rapidminer.gui.tools.ResourceActionAdapter; import com.rapidminer.gui.tools.dialogs.MultiPageDialog; /** A dialog to create new remote or local repositories. * * @author Simon Fischer * */ public class NewRepositoryDialog extends MultiPageDialog { private static final long serialVersionUID = 1L; private final RemoteRepositoryPanel remoteRepositoryPanel = new RemoteRepositoryPanel(); private final LocalRepositoryPanel localRepositoryPanel = new LocalRepositoryPanel(); private final JRadioButton localButton; private final JRadioButton remoteButton; private NewRepositoryDialog() { super(RapidMinerGUI.getMainFrame(), "repositorydialog", true); Box firstPage = new Box(BoxLayout.Y_AXIS); ButtonGroup checkBoxGroup = new ButtonGroup(); localButton = new JRadioButton(new ResourceActionAdapter("new_local_repositiory")); remoteButton = new JRadioButton(new ResourceActionAdapter("new_remote_repositiory")); checkBoxGroup.add(localButton); checkBoxGroup.add(remoteButton); firstPage.add(localButton); firstPage.add(remoteButton); firstPage.add(Box.createVerticalGlue()); localButton.setSelected(true); Map<String,Component> cards = new HashMap<String,Component>(); cards.put("first", firstPage); cards.put("remote", remoteRepositoryPanel); cards.put("local", localRepositoryPanel); layoutDefault(cards); } public static void createNew() { NewRepositoryDialog d = new NewRepositoryDialog(); d.setVisible(true); } @Override protected void finish() { if (localButton.isSelected()) { localRepositoryPanel.makeRepository(); } else { remoteRepositoryPanel.makeRepository(); } super.finish(); } @Override protected String getNameForStep(int step) { switch (step) { case 0: return "first"; case 1: if (localButton.isSelected()) { return "local"; } else { return "remote"; } default: throw new IllegalArgumentException("Illegal index: "+step); } } @Override protected boolean isComplete() { return isLastStep(getCurrentStep()); } @Override protected boolean isLastStep(int step) { return step >= 1; } }