// BlogBridge -- RSS feed reader, manager, and web based service // Copyright (C) 2002-2006 by R. Pito Salas // // 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place, // Suite 330, Boston, MA 02111-1307 USA // // Contact: R. Pito Salas // mailto:pitosalas@users.sourceforge.net // More information: about BlogBridge // http://www.blogbridge.com // http://sourceforge.net/projects/blogbridge // // $Id: FeedUpdatePeriodPanel.java,v 1.1 2007/04/30 11:45:47 spyromus Exp $ // package com.salas.bb.dialogs; import com.salas.bb.utils.Constants; import com.salas.bb.utils.i18n.Strings; import com.salas.bb.utils.uif.BBFormBuilder; import com.salas.bb.utils.uif.StateUpdatingToggleListener; import javax.swing.*; /** * Feed update period manipulation panel. */ public class FeedUpdatePeriodPanel extends JPanel { private final long initialUpdatePeriod; private final JRadioButton rbUPCustom; private final JTextField tfUPValue; private JRadioButton rbUPManual; /** * Creates the period manipulation panel. * * @param period initial period. */ public FeedUpdatePeriodPanel(long period) { initialUpdatePeriod = period; JRadioButton rbUPGlobal = new JRadioButton(Strings.message("show.feed.properties.tab.advanced.global")); rbUPManual = new JRadioButton(Strings.message("show.feed.properties.tab.advanced.manual")); rbUPCustom = new JRadioButton(Strings.message("show.feed.properties.tab.advanced.every")); ButtonGroup bg = new ButtonGroup(); bg.add(rbUPGlobal); bg.add(rbUPManual); bg.add(rbUPCustom); tfUPValue = new JTextField(); StateUpdatingToggleListener.install(rbUPCustom, tfUPValue); // Calculate period of updates if (period < 0) { // Global rbUPGlobal.setSelected(true); tfUPValue.setText(""); } else if (period == 0) { rbUPManual.setSelected(true); tfUPValue.setText(""); } else { rbUPCustom.setSelected(true); tfUPValue.setText(Long.toString(period / Constants.MILLIS_IN_MINUTE)); } BBFormBuilder builder = new BBFormBuilder("p, 2dlu, 30dlu", this); builder.append(rbUPGlobal, 3); builder.append(rbUPManual, 3); builder.append(rbUPCustom, tfUPValue); } /** * Converts the user selection / entry into the period. * If the entry isn't value, the initial period is used. * * @return period. */ public long getUpdatePeriod() { long period = -1; if (rbUPCustom.isSelected()) { try { period = Long.parseLong(tfUPValue.getText()) * Constants.MILLIS_IN_MINUTE; } catch (NumberFormatException e) { // Invalid entry -- not a big deal. // Use the initial value period = initialUpdatePeriod; } } else if (rbUPManual.isSelected()) { period = 0; } return period; } }