On Friday 08 February 2008 14:45, you wrote:
> In future, please keep indenting and functional changes in separate commits.
> This makes it much easier to read the commits. Thanks.
In fact .. it's going to be make the process of applying patches from upstream
significantly more convoluted. I suggest you revert the whole patch and try
again without the indenting changes.
>
> On Friday 08 February 2008 01:25, you wrote:
> > Author: dieppe
> > Date: 2008-02-08 01:25:29 +0000 (Fri, 08 Feb 2008)
> > New Revision: 17693
> >
> > Modified:
> > trunk/apps/thingamablog/src/net/sf/thingamablog/blog/TBWeblog.java
> >
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBGeneralPanel.java
> >
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBWizardDialog.java
> >
trunk/apps/thingamablog/src/net/sf/thingamablog/xml/TBPersistFactory.java
> > Log:
> > Author : dieppe
> > Updates : add a combobox in the creation process, to ask if the blog is a
> flog or not. Allow to put freenet key in the url field if the blog is a
> > flog.
> >
> >
> >
> > Modified:
trunk/apps/thingamablog/src/net/sf/thingamablog/blog/TBWeblog.java
> > ===================================================================
> > --- trunk/apps/thingamablog/src/net/sf/thingamablog/blog/TBWeblog.java
> 2008-02-08 00:42:57 UTC (rev 17692)
> > +++ trunk/apps/thingamablog/src/net/sf/thingamablog/blog/TBWeblog.java
> 2008-02-08 01:25:29 UTC (rev 17693)
> > @@ -114,6 +114,9 @@
> > private File homeDir;
> > private File tmplDir;
> > private File outputDir;
> > +
> > + // Should be internet or freenet
> > + private String type;
> >
> >
> > /**
> > @@ -1393,4 +1396,12 @@
> >
> > return null;
> > }
> > +
> > + public void setType(String type) {
> > + this.type=type;
> > + }
> > +
> > + public String getType() {
> > + return this.type;
> > + }
> > }
> >
> > Modified:
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBGeneralPanel.java
> > ===================================================================
> > ---
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBGeneralPanel.java
> 2008-02-08 00:42:57 UTC (rev 17692)
> > +++
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBGeneralPanel.java
> 2008-02-08 01:25:29 UTC (rev 17693)
> > @@ -30,285 +30,277 @@
> > /**
> > * @author Bob Tantlinger
> > *
> > - *
> > - *
> > + *
> > + *
> > */
> > -public class TBGeneralPanel extends PropertyPanel
> > -{
> > +public class TBGeneralPanel extends PropertyPanel {
> > /**
> > - *
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > -
> > +
> > private static final I18n i18n =
> I18n.getInstance("net.sf.thingamablog.gui.properties");
> >
> > private TBWeblog weblog;
> > -
> > - private JTextField titleField;
> > - private JTextArea descrArea;
> > - private JTextField basePathField;
> > - private JTextField urlField;
> > - private JTextField arcUrlField;
> > - private JTextField mediaUrlField;
> > -
> > - private JComboBox localeCombo;
> > - private JComboBox dateFormatCombo;
> > - private JComboBox timeFormatCombo;
> > -
> > - private static Locale LOCS[] = DateFormat.getAvailableLocales();
> > -
> > - private String[] getDateFormats(Locale locale) {
> > - String s = i18n.str("DateFormatOptions",locale);
> > - return tokenize(s);
> > - }
> > - private String[] getTimeFormats(Locale locale) {
> > - String s = i18n.str("TimeFormatOptions",locale);
> > - return tokenize(s);
> > - }
> > - private String[] tokenize(String s) {
> > - StringTokenizer st = new StringTokenizer(s,"|");
> > - String[] formats = new String[st.countTokens()];
> > - for (int i = 0; i < formats.length; i++) {
> > - formats[i] = st.nextToken();
> > - }
> > - return formats;
> > - }
> > - /*
> > - private static final String DATE_FORMATS[] =
> > - {
> > - "EEEE, MMMM dd, yyyy", //$NON-NLS-1$
> > - "EEE, MMM dd, yyyy", //$NON-NLS-1$
> > - "EEEE, dd MMMM, yyyy", //$NON-NLS-1$
> > - "EEEE dd MMMM yyyy", //$NON-NLS-1$
> > - "EEEE",
> > - "MMMM dd, yyyy", //$NON-NLS-1$
> > - "MMMM dd yyyy", //$NON-NLS-1$
> > -
> > - "MM/dd/yyyy", //$NON-NLS-1$
> > - "MM/dd/yy", //$NON-NLS-1$
> > - "dd/MM/yyyy", //$NON-NLS-1$
> > - "dd/MM/yy", //$NON-NLS-1$
> > -
> > - "dd MMMM yyyy", //$NON-NLS-1$
> > - "dd MMMM", //$NON-NLS-1$
> > -
> > - "yyyy-MM-dd", //$NON-NLS-1$
> > - "yy-MM-dd", //$NON-NLS-1$
> > - "yy.MM.dd", //$NON-NLS-1$
> > - "yyyy.MM.dd", //$NON-NLS-1$
> > - "EEEE, MM/dd/yyyy", //$NON-NLS-1$
> > - "EEE, MM/dd/yyyy" //$NON-NLS-1$
> > - };
> >
> > - private static final SimpleDateFormat GMT_TIME_FORMAT =
> > - new SimpleDateFormat("k:mm.ss z"); //$NON-NLS-1$
> > - private static final String TIME_FORMATS[] =
> > - {
> > - "h:mm a", //$NON-NLS-1$
> > - "h:mm.ss a", //$NON-NLS-1$
> > - "h:mm a z", //$NON-NLS-1$
> > - "h:mm.ss a z", //$NON-NLS-1$
> > - "h:mm a zzzz", //$NON-NLS-1$
> > - "h:mm.ss a zzzz", //$NON-NLS-1$
> > - "k:mm", //$NON-NLS-1$
> > - "k:mm.ss", //$NON-NLS-1$
> > - //GMT_TIME_FORMAT
> > - };
> > - */
> > -
> > - public TBGeneralPanel(TBWeblog blog)
> > - {
> > - weblog = blog;
> > -
> > - TextEditPopupManager popupMan =
> > TextEditPopupManager.getInstance();
> > - titleField = new JTextField();
> > - titleField.setText(weblog.getTitle());
> > - popupMan.registerJTextComponent(titleField);
> > -
> > - descrArea = new JTextArea(3, 2);
> > - //descrArea.setMinimumSize(descrArea.getPreferredSize());
> >
> > - descrArea.setLineWrap(true);
> > - descrArea.setWrapStyleWord(true);
> > - descrArea.setText(weblog.getDescription());
> > - popupMan.registerJTextComponent(descrArea);
> > -
> > -
> > - //DateFormat.getAvailableLocales()
> > - localeCombo = new JComboBox(LOCS);
> > - //localeCombo = new JComboBox();
> > - localeCombo.setSelectedItem(weblog.getLocale());
> > - localeCombo.setRenderer(new ComboRenderer());
> > - localeCombo.addActionListener(new ActionListener()
> > - {
> > - public void actionPerformed(ActionEvent e)
> > - {
> > - String[] dateFormats =
> getDateFormats((Locale)localeCombo.getSelectedItem());
> > - replaceComboItem(dateFormatCombo,dateFormats);
> > - String[] timeFormats =
> getTimeFormats((Locale)localeCombo.getSelectedItem());
> > - replaceComboItem(timeFormatCombo,timeFormats);
> >
> > - }
> > - });
> > -
> > - dateFormatCombo = new
> > JComboBox(getDateFormats(weblog.getLocale()));
> > -
> dateFormatCombo.setSelectedItem(weblog.getPageGenerator().getDateFormat());
> > - dateFormatCombo.setRenderer(new ComboRenderer());
> > -
> > - timeFormatCombo = new
> > JComboBox(getTimeFormats(weblog.getLocale()));
> > -
> timeFormatCombo.setSelectedItem(weblog.getPageGenerator().getTimeFormat());
> > - timeFormatCombo.setRenderer(new ComboRenderer());
> > -
> > - basePathField = new JTextField();
> > - basePathField.setText(weblog.getBasePath());
> > - popupMan.registerJTextComponent(basePathField);
> > -
> > - urlField = new JTextField();
> > - urlField.setText(weblog.getBaseUrl());
> > - popupMan.registerJTextComponent(urlField);
> > -
> > - arcUrlField = new JTextField();
> > - arcUrlField.setText(weblog.getArchiveUrl());
> > - popupMan.registerJTextComponent(arcUrlField);
> > -
> > - mediaUrlField = new JTextField();
> > - mediaUrlField.setText(weblog.getMediaUrl());
> > - popupMan.registerJTextComponent(mediaUrlField);
> > -
> > - setLayout(new BorderLayout(5, 5));
> > - setBorder(new EmptyBorder(5, 5, 5, 5));
> > - LabelledItemPanel lip1 = new LabelledItemPanel();
> > - lip1.setBorder(new TitledBorder(i18n.str("weblog")));
> > //$NON-NLS-1$
> > - lip1.addItem(i18n.str("site_title"), titleField); //$NON-NLS-1$
> > - //JPanel descPanel = new JPanel(new BorderLayout());
> > - //descPanel.add(new JScrollPane(descrArea),
> > BorderLayout.CENTER);
> > - //lip1.addItem("Description", descPanel);
> > - lip1.addItem(i18n.str("description"), new
> JScrollPane(descrArea)); //$NON-NLS-1$
> > - lip1.addItem(i18n.str("language"), localeCombo); //$NON-NLS-1$
> > - lip1.addItem(i18n.str("date_format"), dateFormatCombo);
> > //$NON-NLS-1$
> > - lip1.addItem(i18n.str("time_format"), timeFormatCombo);
> > //$NON-NLS-1$
> > -
> > - LabelledItemPanel lip2 = new LabelledItemPanel();
> > - lip2.setBorder(new TitledBorder(i18n.str("location")));
> > //$NON-NLS-1$
> > - lip2.addItem(i18n.str("base_path"), basePathField);
> > //$NON-NLS-1$
> > - lip2.addItem(i18n.str("base_url"), urlField); //$NON-NLS-1$
> > - lip2.addItem(i18n.str("archive_url"), arcUrlField);
> > //$NON-NLS-1$
> > - lip2.addItem(i18n.str("media_url"), mediaUrlField);
> > //$NON-NLS-1$
> > -
> > - add(lip1, BorderLayout.CENTER);
> > - add(lip2, BorderLayout.SOUTH);
> > -
> > + private JTextField titleField;
> > + private JTextArea descrArea;
> > + private JTextField basePathField;
> > + private JTextField urlField;
> > + private JTextField arcUrlField;
> > + private JTextField mediaUrlField;
> > +
> > + private JComboBox localeCombo;
> > + private JComboBox dateFormatCombo;
> > + private JComboBox timeFormatCombo;
> > + private JComboBox typeCombo;
> > +
> > + private static Locale LOCS[] = DateFormat.getAvailableLocales();
> > + private static String TYPE[] = {"internet","freenet"};
> > +
> > + private String[] getDateFormats(Locale locale) {
> > + String s = i18n.str("DateFormatOptions",locale);
> > + return tokenize(s);
> > }
> > + private String[] getTimeFormats(Locale locale) {
> > + String s = i18n.str("TimeFormatOptions",locale);
> > + return tokenize(s);
> > + }
> > + private String[] tokenize(String s) {
> > + StringTokenizer st = new StringTokenizer(s,"|");
> > + String[] formats = new String[st.countTokens()];
> > + for (int i = 0; i < formats.length; i++) {
> > + formats[i] = st.nextToken();
> > + }
> > + return formats;
> > + }
> > + /*
> > + private static final String DATE_FORMATS[] =
> > + {
> > + "EEEE, MMMM dd, yyyy", //$NON-NLS-1$
> > + "EEE, MMM dd, yyyy", //$NON-NLS-1$
> > + "EEEE, dd MMMM, yyyy", //$NON-NLS-1$
> > + "EEEE dd MMMM yyyy", //$NON-NLS-1$
> > + "EEEE",
> > + "MMMM dd, yyyy", //$NON-NLS-1$
> > + "MMMM dd yyyy", //$NON-NLS-1$
> > +
> > + "MM/dd/yyyy", //$NON-NLS-1$
> > + "MM/dd/yy", //$NON-NLS-1$
> > + "dd/MM/yyyy", //$NON-NLS-1$
> > + "dd/MM/yy", //$NON-NLS-1$
> > +
> > + "dd MMMM yyyy", //$NON-NLS-1$
> > + "dd MMMM", //$NON-NLS-1$
> > +
> > + "yyyy-MM-dd", //$NON-NLS-1$
> > + "yy-MM-dd", //$NON-NLS-1$
> > + "yy.MM.dd", //$NON-NLS-1$
> > + "yyyy.MM.dd", //$NON-NLS-1$
> > + "EEEE, MM/dd/yyyy", //$NON-NLS-1$
> > + "EEE, MM/dd/yyyy" //$NON-NLS-1$
> > + };
> > +
> > + private static final SimpleDateFormat GMT_TIME_FORMAT =
> > + new SimpleDateFormat("k:mm.ss z"); //$NON-NLS-1$
> > + private static final String TIME_FORMATS[] =
> > + {
> > + "h:mm a", //$NON-NLS-1$
> > + "h:mm.ss a", //$NON-NLS-1$
> > + "h:mm a z", //$NON-NLS-1$
> > + "h:mm.ss a z", //$NON-NLS-1$
> > + "h:mm a zzzz", //$NON-NLS-1$
> > + "h:mm.ss a zzzz", //$NON-NLS-1$
> > + "k:mm", //$NON-NLS-1$
> > + "k:mm.ss", //$NON-NLS-1$
> > + //GMT_TIME_FORMAT
> > + };
> > + */
> > +
> > + public TBGeneralPanel(TBWeblog blog) {
> > + weblog = blog;
> > +
> > + TextEditPopupManager popupMan =
TextEditPopupManager.getInstance();
> > + titleField = new JTextField();
> > + titleField.setText(weblog.getTitle());
> > + popupMan.registerJTextComponent(titleField);
> > +
> > + descrArea = new JTextArea(3, 2);
> > + //descrArea.setMinimumSize(descrArea.getPreferredSize());
> > + descrArea.setLineWrap(true);
> > + descrArea.setWrapStyleWord(true);
> > + descrArea.setText(weblog.getDescription());
> > + popupMan.registerJTextComponent(descrArea);
> > +
> > +
> > + //DateFormat.getAvailableLocales()
> > + localeCombo = new JComboBox(LOCS);
> > + //localeCombo = new JComboBox();
> > + localeCombo.setSelectedItem(weblog.getLocale());
> > + localeCombo.setRenderer(new ComboRenderer());
> > + localeCombo.addActionListener(new ActionListener() {
> > + public void actionPerformed(ActionEvent e) {
> > + String[] dateFormats =
> getDateFormats((Locale)localeCombo.getSelectedItem());
> > + replaceComboItem(dateFormatCombo,dateFormats);
> > + String[] timeFormats =
> getTimeFormats((Locale)localeCombo.getSelectedItem());
> > + replaceComboItem(timeFormatCombo,timeFormats);
> > + }
> > + });
> > +
> > + dateFormatCombo = new
> JComboBox(getDateFormats(weblog.getLocale()));
> > +
> dateFormatCombo.setSelectedItem(weblog.getPageGenerator().getDateFormat());
> > + dateFormatCombo.setRenderer(new ComboRenderer());
> > +
> > + timeFormatCombo = new
> JComboBox(getTimeFormats(weblog.getLocale()));
> > +
> timeFormatCombo.setSelectedItem(weblog.getPageGenerator().getTimeFormat());
> > + timeFormatCombo.setRenderer(new ComboRenderer());
> > +
> > + typeCombo = new JComboBox(TYPE);
> > + typeCombo.setSelectedItem(weblog.getType());
> > +
> > + basePathField = new JTextField();
> > + basePathField.setText(weblog.getBasePath());
> > + popupMan.registerJTextComponent(basePathField);
> > +
> > + urlField = new JTextField();
> > + urlField.setText(weblog.getBaseUrl());
> > + popupMan.registerJTextComponent(urlField);
> > +
> > + arcUrlField = new JTextField();
> > + arcUrlField.setText(weblog.getArchiveUrl());
> > + popupMan.registerJTextComponent(arcUrlField);
> > +
> > + mediaUrlField = new JTextField();
> > + mediaUrlField.setText(weblog.getMediaUrl());
> > + popupMan.registerJTextComponent(mediaUrlField);
> > +
> > + setLayout(new BorderLayout(5, 5));
> > + setBorder(new EmptyBorder(5, 5, 5, 5));
> > + LabelledItemPanel lip1 = new LabelledItemPanel();
> > + lip1.setBorder(new
TitledBorder(i18n.str("weblog"))); //$NON-NLS-1$
> > + lip1.addItem(i18n.str("site_title"), titleField); //$NON-NLS-1$
> > + //JPanel descPanel = new JPanel(new BorderLayout());
> > + //descPanel.add(new JScrollPane(descrArea), BorderLayout.CENTER);
> > + //lip1.addItem("Description", descPanel);
> > + lip1.addItem(i18n.str("description"), new
> JScrollPane(descrArea)); //$NON-NLS-1$
> > + lip1.addItem(i18n.str("language"), localeCombo); //$NON-NLS-1$
> > + lip1.addItem(i18n.str("date_format"),
> dateFormatCombo); //$NON-NLS-1$
> > + lip1.addItem(i18n.str("time_format"),
> timeFormatCombo); //$NON-NLS-1$
> > + lip1.addItem(i18n.str("type"), typeCombo);
> > +
> > + LabelledItemPanel lip2 = new LabelledItemPanel();
> > + lip2.setBorder(new
> TitledBorder(i18n.str("location"))); //$NON-NLS-1$
> > + lip2.addItem(i18n.str("base_path"), basePathField); //$NON-NLS-1$
> > + lip2.addItem(i18n.str("base_url"), urlField); //$NON-NLS-1$
> > + lip2.addItem(i18n.str("archive_url"), arcUrlField); //$NON-NLS-1$
> > + lip2.addItem(i18n.str("media_url"), mediaUrlField); //$NON-NLS-1$
> >
> > +
> > + add(lip1, BorderLayout.CENTER);
> > + add(lip2, BorderLayout.SOUTH);
> > +
> > + }
> > private void replaceComboItem(JComboBox combo, String[] items) {
> > - combo.removeAllItems();
> > - for (int i = 0; i < items.length; i++) {
> > - combo.addItem(items[i]);
> > - }
> > - }
> > + combo.removeAllItems();
> > + for (int i = 0; i < items.length; i++) {
> > + combo.addItem(items[i]);
> > + }
> > + }
> >
> > /* (non-Javadoc)
> > * @see
> net.sf.thingamablog.gui.properties.PropertyPanel#savePropertiesToWeblog()
> > */
> > - public void saveProperties()
> > - {
> > - weblog.setPublishAll(true);
> > + public void saveProperties() {
> > + weblog.setPublishAll(true);
> > weblog.setBlogUrls(
> > - basePathField.getText(), urlField.getText(),
> > - arcUrlField.getText(), mediaUrlField.getText());
> > + basePathField.getText(), urlField.getText(),
> > + arcUrlField.getText(), mediaUrlField.getText());
> > weblog.setLocale((Locale)localeCombo.getSelectedItem());
> > weblog.setTitle(titleField.getText());
> > weblog.setDescription(descrArea.getText());
> >
>
weblog.getPageGenerator().setDateFormat(dateFormatCombo.getSelectedItem().toString());
> > -
>
weblog.getPageGenerator().setTimeFormat(timeFormatCombo.getSelectedItem().toString());
> > -
> > +
>
weblog.getPageGenerator().setTimeFormat(timeFormatCombo.getSelectedItem().toString());
> > + weblog.setType(typeCombo.getSelectedItem().toString());
> > }
> >
> > -
> >
> > - public boolean isValidData()
> > - {
> > - String base = urlField.getText();
> > - String arc = arcUrlField.getText();
> > - String media = mediaUrlField.getText();
> > -
> > - if(basePathField.getText() == null ||
> basePathField.getText().equals("")) //$NON-NLS-1$
> > - {
> > - JOptionPane.showMessageDialog(this,
> > - i18n.str("no_base_path_prompt"), //$NON-NLS-1$
> > - i18n.str("warning"),
> > JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > - return false;
> > - }
> > -
> > - if(!isValidUrl(base))
> > - return false;
> > - if(!isValidUrl(arc))
> > - return false;
> > - if(!isValidUrl(media))
> > - return false;
> > -
> > - if(!arc.startsWith(base))
> > - {
> > - JOptionPane.showMessageDialog(this,
> > - i18n.str("bad_arc_url_prompt"), //$NON-NLS-1$
> > - i18n.str("warning"),
> > JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > -
> > - return false;
> > - }
> > -
> > - if(!media.startsWith(base))
> > - {
> > - JOptionPane.showMessageDialog(this,
> > - i18n.str("bad_media_url_prompt"), //$NON-NLS-1$
> > - i18n.str("warning"),
> > JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > -
> > - return false;
> > - }
> > -
> > - return true;
> > +
> > + public boolean isValidData() {
> > + String base = urlField.getText();
> > + String arc = arcUrlField.getText();
> > + String media = mediaUrlField.getText();
> > +
> > + if(basePathField.getText() == null ||
> basePathField.getText().equals("")) //$NON-NLS-1$
> > + {
> > + JOptionPane.showMessageDialog(this,
> > + i18n.str("no_base_path_prompt"), //$NON-NLS-1$
> > + i18n.str("warning"),
> JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > + return false;
> > + }
> > +
> > + if(typeCombo.getSelectedItem().equals("internet") &&
> (!isValidUrl(base) || !isValidUrl(arc) || !isValidUrl(media)))
> > + return false;
> > +
> > + if(typeCombo.getSelectedItem().equals("freenet") &&
> (!isValidKey(base) || !isValidKey(arc) || !isValidKey(media)))
> > + return false;
> > +
> > + if(!arc.startsWith(base)) {
> > + JOptionPane.showMessageDialog(this,
> > + i18n.str("bad_arc_url_prompt"), //$NON-NLS-1$
> > + i18n.str("warning"),
> JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > +
> > + return false;
> > + }
> > +
> > + if(!media.startsWith(base)) {
> > + JOptionPane.showMessageDialog(this,
> > + i18n.str("bad_media_url_prompt"), //$NON-NLS-1$
> > + i18n.str("warning"),
> JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > +
> > + return false;
> > + }
> > +
> > + return true;
> > }
> >
> > - private boolean isValidUrl(String u)
> > - {
> > - try
> > - {
> > - new URL(u);
> > - }
> > - catch(Exception ex)//malformed url
> > - {
> > - JOptionPane.showMessageDialog(this,
> > - u + i18n.str("invalid_url_prompt"),
> > //$NON-NLS-1$
> > - i18n.str("warning"),
> > JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > - return false;
> > - }
> > - return true;
> > + private boolean isValidUrl(String u) {
> > + try {
> > + new URL(u);
> > + } catch(Exception ex)//malformed url
> > + {
> > + JOptionPane.showMessageDialog(this,
> > + u + i18n.str("invalid_url_prompt"), //$NON-NLS-1$
> > + i18n.str("warning"),
> JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$
> > + return false;
> > + }
> > + return true;
> > }
> >
> > -
> > + private boolean isValidKey(String key) {
> > + // TODO : Check if the key match a USK key
> > + return true;
> > + }
> >
> > - private class ComboRenderer extends DefaultListCellRenderer
> > - {
> > - /**
> > - *
> > + private class ComboRenderer extends DefaultListCellRenderer {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > private Date date = new Date();
> > -
> > - public Component getListCellRendererComponent(JList list,
> > - Object value, int index, boolean isSelected, boolean
> > cellHasFocus)
> > - {
> > - if(value instanceof Locale)
> > - {
> > - Locale loc = (Locale)value;
> > - value = loc.getDisplayName();
> > - }
> > - else
> > - {
> > - Locale loc =
> > (Locale)localeCombo.getSelectedItem();
> > - SimpleDateFormat df = new
> > SimpleDateFormat(value.toString(),loc);
> > - value = df.format(date);
> >
> > - }
> > -
> > - return super.getListCellRendererComponent(
> > - list, value, index, isSelected, cellHasFocus);
> > - }
> > - }
> > -
> > +
> > + public Component getListCellRendererComponent(JList list,
> > + Object value, int index, boolean isSelected, boolean
> cellHasFocus) {
> > + if(value instanceof Locale) {
> > + Locale loc = (Locale)value;
> > + value = loc.getDisplayName();
> > + } else {
> > + Locale loc = (Locale)localeCombo.getSelectedItem();
> > + SimpleDateFormat df = new
> SimpleDateFormat(value.toString(),loc);
> > + value = df.format(date);
> > + }
> > +
> > + return super.getListCellRendererComponent(
> > + list, value, index, isSelected, cellHasFocus);
> > + }
> > + }
> > +
> > }
> >
> > Modified:
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBWizardDialog.java
> > ===================================================================
> > ---
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBWizardDialog.java
> 2008-02-08 00:42:57 UTC (rev 17692)
> > +++
>
trunk/apps/thingamablog/src/net/sf/thingamablog/gui/properties/TBWizardDialog.java
> 2008-02-08 01:25:29 UTC (rev 17693)
> > @@ -19,6 +19,7 @@
> >
> > import javax.swing.BorderFactory;
> > import javax.swing.JButton;
> > +import javax.swing.JComboBox;
> > import javax.swing.JDialog;
> > import javax.swing.JLabel;
> > import javax.swing.JOptionPane;
> > @@ -51,216 +52,200 @@
> > /**
> > * @author Bob Tantlinger
> > *
> > - *
> > - *
> > + *
> > + *
> > */
> > -public class TBWizardDialog extends JDialog
> > -{
> > +public class TBWizardDialog extends JDialog {
> > /**
> > - *
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > -
> > +
> > private static final I18n i18n =
> I18n.getInstance("net.sf.thingamablog.gui.properties"); //$NON-NLS-1$
> >
> > private static final String CANCEL =
i18n.str("cancel"); //$NON-NLS-1$
> > - private static final String FINISH = i18n.str("finish");
> > //$NON-NLS-1$
> > -
> > - private CardLayout wizLayout;
> > - private JPanel wizPanel;
> > -
> > - private PropertyPanel starterPanel;
> > - private TitleDescrPanel titlePanel;
> > - private CategoriesPanel catPanel;
> > - private AuthorsPanel authPanel;
> > + private static final String FINISH =
i18n.str("finish"); //$NON-NLS-1$
> > +
> > + private CardLayout wizLayout;
> > + private JPanel wizPanel;
> > +
> > + private PropertyPanel starterPanel;
> > + private TitleDescrPanel titlePanel;
> > + private CategoriesPanel catPanel;
> > + private AuthorsPanel authPanel;
> > private PropertyPanel emailPanel;
> > - private PropertyPanel templPanel;
> > - private PropertyPanel transportPanel;
> > - private PropertyPanel donePanel;
> > - private Vector panels = new Vector();
> > -
> > - private JButton nextButton, backButton, doneButton;
> > -
> > - private boolean isCancelled;
> > -
> > - private TBWeblog weblog;
> > + private PropertyPanel templPanel;
> > + private PropertyPanel transportPanel;
> > + private PropertyPanel donePanel;
> > + private Vector panels = new Vector();
> >
> > - private TextEditPopupManager popupManager =
> TextEditPopupManager.getInstance();
> > + private JButton nextButton, backButton, doneButton;
> >
> > + private boolean isCancelled;
> > +
> > + private TBWeblog weblog;
> > +
> > + private TextEditPopupManager popupManager =
> TextEditPopupManager.getInstance();
> > +
> > private TemplatePack selectedPack;
> > -
> > - public TBWizardDialog(Frame f, File dir, WeblogBackend backend)
> > - {
> > - super(f, true);
> > - setTitle(i18n.str("new_weblog")); //$NON-NLS-1$
> > -
> > - WindowAdapter windowAdapter = new WindowAdapter()
> > - {
> > - public void windowClosing(WindowEvent windowEvent)
> > - {
> > - cancelDialog();
> > - }
> > - };
> > - addWindowListener(windowAdapter);
> > -
> > - weblog = new TBWeblog(dir);
> > - weblog.setBackend(backend);
> > - weblog.setPublishTransport(new
> net.sf.thingamablog.transport.FTPTransport());
> > - //weblog.setAuthorStore(authStore);
> > - //weblog.setCategoryStore(catStore);
> > -
> > - wizLayout = new CardLayout();
> > - wizPanel = new JPanel(wizLayout);
> > -
> > - starterPanel = new StarterPanel();
> > - starterPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(starterPanel);
> > -
> > - titlePanel = new TitleDescrPanel();
> > - titlePanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(titlePanel);
> > -
> > - catPanel = new CategoriesPanel();
> > - catPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(catPanel);
> > -
> > - authPanel = new AuthorsPanel();
> > - authPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(authPanel);
> > +
> > + public TBWizardDialog(Frame f, File dir, WeblogBackend backend) {
> > + super(f, true);
> > + setTitle(i18n.str("new_weblog")); //$NON-NLS-1$
> >
> > + WindowAdapter windowAdapter = new WindowAdapter() {
> > + public void windowClosing(WindowEvent windowEvent) {
> > + cancelDialog();
> > + }
> > + };
> > + addWindowListener(windowAdapter);
> > +
> > + weblog = new TBWeblog(dir);
> > + weblog.setBackend(backend);
> > + weblog.setPublishTransport(new
> net.sf.thingamablog.transport.FTPTransport());
> > + //weblog.setAuthorStore(authStore);
> > + //weblog.setCategoryStore(catStore);
> > +
> > + wizLayout = new CardLayout();
> > + wizPanel = new JPanel(wizLayout);
> > +
> > + starterPanel = new StarterPanel();
> > + starterPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(starterPanel);
> > +
> > + titlePanel = new TitleDescrPanel();
> > + titlePanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(titlePanel);
> > +
> > + catPanel = new CategoriesPanel();
> > + catPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(catPanel);
> > +
> > + authPanel = new AuthorsPanel();
> > + authPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(authPanel);
> > +
> > emailPanel = new EmailPanel();
> > emailPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > panels.add(emailPanel);
> > -
> > - templPanel = new TemplatePanel();
> > - templPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(templPanel);
> > -
> > - transportPanel = new TransportPanel();
> > - transportPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(transportPanel);
> > -
> > - donePanel = new DonePanel();
> > - donePanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > - panels.add(donePanel);
> > -
> > - wizPanel.add(starterPanel, "1"); //$NON-NLS-1$
> > - wizPanel.add(titlePanel, "2"); //$NON-NLS-1$
> > - wizPanel.add(catPanel, "3"); //$NON-NLS-1$
> > - wizPanel.add(authPanel, "4"); //$NON-NLS-1$
> > +
> > + templPanel = new TemplatePanel();
> > + templPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(templPanel);
> > +
> > + transportPanel = new TransportPanel();
> > + transportPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(transportPanel);
> > +
> > + donePanel = new DonePanel();
> > + donePanel.setBorder(new EmptyBorder(10, 10, 10, 10));
> > + panels.add(donePanel);
> > +
> > + wizPanel.add(starterPanel, "1"); //$NON-NLS-1$
> > + wizPanel.add(titlePanel, "2"); //$NON-NLS-1$
> > + wizPanel.add(catPanel, "3"); //$NON-NLS-1$
> > + wizPanel.add(authPanel, "4"); //$NON-NLS-1$
> > wizPanel.add(emailPanel, "5"); //$NON-NLS-1$
> > - wizPanel.add(templPanel, "6"); //$NON-NLS-1$
> > - wizPanel.add(transportPanel, "7"); //$NON-NLS-1$
> > - wizPanel.add(donePanel, "8"); //$NON-NLS-1$
> > -
> > - ActionListener listener = new ButtonHandler();
> > - nextButton = new JButton(i18n.str("next-")); //$NON-NLS-1$
> > - nextButton.addActionListener(listener);
> > - backButton = new JButton(i18n.str("-back")); //$NON-NLS-1$
> > - backButton.setEnabled(false);
> > - backButton.addActionListener(listener);
> > - doneButton = new JButton(CANCEL);
> > - doneButton.addActionListener(listener);
> > -
> > - JPanel controlPanel = new JPanel(new
> > FlowLayout(FlowLayout.RIGHT));
> > - controlPanel.setBorder(new EtchedBorder());
> > - JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 5, 5));
> >
> > - buttonPanel.add(backButton);
> > - buttonPanel.add(nextButton);
> > - buttonPanel.add(doneButton);
> > - controlPanel.add(buttonPanel);
> > -
> > - JLabel img = new JLabel();
> > - img.setVerticalAlignment(SwingConstants.TOP);
> > - img.setOpaque(true);
> > - img.setBackground(Color.WHITE);
> > - img.setIcon(UIUtils.getIcon(UIUtils.MISC, "wizard.jpg"));
> > //$NON-NLS-1$
> > -
> > - getContentPane().add(wizPanel, BorderLayout.CENTER);
> > - getContentPane().add(controlPanel, BorderLayout.SOUTH);
> > - getContentPane().add(img, BorderLayout.WEST);
> > -
> > - pack();
> > + wizPanel.add(templPanel, "6"); //$NON-NLS-1$
> > + wizPanel.add(transportPanel, "7"); //$NON-NLS-1$
> > + wizPanel.add(donePanel, "8"); //$NON-NLS-1$
> > +
> > + ActionListener listener = new ButtonHandler();
> > + nextButton = new JButton(i18n.str("next-")); //$NON-NLS-1$
> > + nextButton.addActionListener(listener);
> > + backButton = new JButton(i18n.str("-back")); //$NON-NLS-1$
> > + backButton.setEnabled(false);
> > + backButton.addActionListener(listener);
> > + doneButton = new JButton(CANCEL);
> > + doneButton.addActionListener(listener);
> > +
> > + JPanel controlPanel = new JPanel(new
FlowLayout(FlowLayout.RIGHT));
> > + controlPanel.setBorder(new EtchedBorder());
> > + JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 5, 5));
> > + buttonPanel.add(backButton);
> > + buttonPanel.add(nextButton);
> > + buttonPanel.add(doneButton);
> > + controlPanel.add(buttonPanel);
> > +
> > + JLabel img = new JLabel();
> > + img.setVerticalAlignment(SwingConstants.TOP);
> > + img.setOpaque(true);
> > + img.setBackground(Color.WHITE);
> > +
> img.setIcon(UIUtils.getIcon(UIUtils.MISC, "wizard.jpg")); //$NON-NLS-1$
> > +
> > + getContentPane().add(wizPanel, BorderLayout.CENTER);
> > + getContentPane().add(controlPanel, BorderLayout.SOUTH);
> > + getContentPane().add(img, BorderLayout.WEST);
> > +
> > + pack();
> > setSize(560, getHeight());
> > - setResizable(false);
> > - }
> > -
> > - public TBWeblog getWeblog()
> > - {
> > - return weblog;
> > - }
> > -
> > - public boolean hasUserCancelled()
> > - {
> > - return isCancelled;
> > - }
> > -
> > - private void doFinish()
> > - {
> > - /*for(int i = 0; i < panels.size(); i++)
> > - {
> > - PropertyPanel p = (PropertyPanel)panels.elementAt(i);
> > - p.saveProperties();
> > - }*/
> > + setResizable(false);
> > + }
> > +
> > + public TBWeblog getWeblog() {
> > + return weblog;
> > + }
> > +
> > + public boolean hasUserCancelled() {
> > + return isCancelled;
> > + }
> > +
> > + private void doFinish() {
> > + /*for(int i = 0; i < panels.size(); i++)
> > + {
> > + PropertyPanel p =
> (PropertyPanel)panels.elementAt(i);
> > + p.saveProperties();
> > + }*/
> >
> > - try
> > - {
> > + try {
> > selectedPack.installPack(weblog.getHomeDirectory());
> > - }
> > - catch(Exception ex)
> > - {
> > + } catch(Exception ex) {
> > UIUtils.showError(this, ex);
> > }
> > -
> > - //add a couple ping services
> > - WeblogsDotComPing ping = new WeblogsDotComPing();
> >
> > + //add a couple ping services
> > + WeblogsDotComPing ping = new WeblogsDotComPing();
> > +
> > //removed because the TAMB ping server has been shutdown...
> > - /*ping.setServiceName("Updated Thingamablogs");
> > -
> > ping.setServiceUrl("http://thingamablog.sourceforge.net/rpc.php");
> > - ping.setEnabled(true);
> > - weblog.addPingService(ping);*/
> > -
> > - ping = new WeblogsDotComPing();
> > - ping.setServiceName("weblogs.com"); //$NON-NLS-1$
> > - ping.setServiceUrl("http://rpc.weblogs.com/RPC2"); //$NON-NLS-1$
> > - ping.setEnabled(false);
> > - weblog.addPingService(ping);
> > -
> > - dispose();
> > - }
> > -
> > - private void cancelDialog()
> > - {
> > - isCancelled = true;
> > - try{
> > - weblog.deleteAll();
> > - }catch(BackendException ex){}
> > - dispose();
> > - }
> > + /*ping.setServiceName("Updated Thingamablogs");
> > +
> ping.setServiceUrl("http://thingamablog.sourceforge.net/rpc.php");
> > + ping.setEnabled(true);
> > + weblog.addPingService(ping);*/
> > +
> > + ping = new WeblogsDotComPing();
> > + ping.setServiceName("weblogs.com"); //$NON-NLS-1$
> > + ping.setServiceUrl("http://rpc.weblogs.com/RPC2"); //$NON-NLS-1$
> > + ping.setEnabled(false);
> > + weblog.addPingService(ping);
> > +
> > + dispose();
> > + }
> >
> > - public void dispose()
> > - {
> > - WeblogPreviewer.getInstance().clearPreviewData();
> > + private void cancelDialog() {
> > + isCancelled = true;
> > + try{
> > + weblog.deleteAll();
> > + }catch(BackendException ex){}
> > + dispose();
> > + }
> > +
> > + public void dispose() {
> > + WeblogPreviewer.getInstance().clearPreviewData();
> > super.dispose();
> > }
> >
> > -
> > - private JLabel createHeaderLabel(String text)
> > - {
> > - JLabel label = new JLabel("<html><h2>" + text
> + "</h2></html>"); //$NON-NLS-1$ //$NON-NLS-2$
> > - return label;
> > - }
> >
> > -
> > + private JLabel createHeaderLabel(String text) {
> > + JLabel label = new JLabel("<html><h2>" + text
> + "</h2></html>"); //$NON-NLS-1$ //$NON-NLS-2$
> > + return label;
> > + }
> >
> > - private PropertyPanel getCurrentPanel()
> > - {
> > - for(int i = 0; i < panels.size(); i++)
> > - {
> > +
> > +
> > + private PropertyPanel getCurrentPanel() {
> > + for(int i = 0; i < panels.size(); i++) {
> > PropertyPanel p = (PropertyPanel)panels.elementAt(i);
> > - if(p.isVisible())
> > - {
> > + if(p.isVisible()) {
> > //return p.isValidData();
> > return p;
> > }
> > @@ -268,244 +253,224 @@
> >
> > return null;
> > }
> > -
> > - private class ButtonHandler implements ActionListener
> > - {
> > - public void actionPerformed(ActionEvent e)
> > - {
> > - if(e.getSource() == nextButton)
> > - {
> > - if(!donePanel.isVisible())
> > - {
> > - //if(isCurrentPanelValid())
> > +
> > + private class ButtonHandler implements ActionListener {
> > + public void actionPerformed(ActionEvent e) {
> > + if(e.getSource() == nextButton) {
> > + if(!donePanel.isVisible()) {
> > + //if(isCurrentPanelValid())
> > PropertyPanel p = getCurrentPanel();
> > - if(p != null && p.isValidData())
> > - {
> > - p.saveProperties();
> > + if(p != null && p.isValidData()) {
> > + p.saveProperties();
> > wizLayout.next(wizPanel);
> >
> > }
> > - }
> > -
> >
> > - if(donePanel.isVisible())
> > - {
> > - doneButton.setText(FINISH);
> > - nextButton.setEnabled(false);
> > - }
> > - backButton.setEnabled(true);
> > - }
> > - else if(e.getSource() == backButton)
> > - {
> > - if(!starterPanel.isVisible())
> > - wizLayout.previous(wizPanel);
> >
> > - if(starterPanel.isVisible())
> > - backButton.setEnabled(false);
> >
> > - if(doneButton.getText().equals(FINISH))
> > - doneButton.setText(CANCEL);
> > - nextButton.setEnabled(true);
> > - }
> > - else if(e.getSource() == doneButton)
> > - {
> > - //the new Weblog was canceled, so delete the
> > - //directory structure that was created when
> > - //the Weblog was instantiated
> > - if(doneButton.getText().equals(FINISH))
> > - {
> > - doFinish();
> > - }
> > - else
> > - {
> > - cancelDialog();
> > - }
> >
> > - }
> > - }
> > - }
> > -
> > -
> > -
> > -
> > - private class StarterPanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > + }
> > +
> > + if(donePanel.isVisible()) {
> > + doneButton.setText(FINISH);
> > + nextButton.setEnabled(false);
> > + }
> > + backButton.setEnabled(true);
> > + } else if(e.getSource() == backButton) {
> > + if(!starterPanel.isVisible())
> > + wizLayout.previous(wizPanel);
> > + if(starterPanel.isVisible())
> > + backButton.setEnabled(false);
> > + if(doneButton.getText().equals(FINISH))
> > + doneButton.setText(CANCEL);
> > + nextButton.setEnabled(true);
> > + } else if(e.getSource() == doneButton) {
> > + //the new Weblog was canceled, so delete the
> > + //directory structure that was created when
> > + //the Weblog was instantiated
> > + if(doneButton.getText().equals(FINISH)) {
> > + doFinish();
> > + } else {
> > + cancelDialog();
> > + }
> > + }
> > + }
> > + }
> > +
> > +
> > +
> > +
> > + private class StarterPanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > private JTextField pathField = new JTextField(20);
> > - private JTextField urlField = new JTextField(20);
> > -
> > - public StarterPanel()
> > - {
> > - JLabel header =
> createHeaderLabel(i18n.str("weblog_wizard")); //$NON-NLS-1$
> > - String text =
> > - i18n.str("welcome_panel_text"); //$NON-NLS-1$
> > -
> > -
> > - LabelledItemPanel lip = new LabelledItemPanel();
> > - lip.addItem(i18n.str("base_path"), pathField);
> > //$NON-NLS-1$
> > - lip.addItem(i18n.str("base_url"), urlField);
> > //$NON-NLS-1$
> > -
> > - popupManager.registerJTextComponent(pathField);
> > - popupManager.registerJTextComponent(urlField);
> > -
> > - setLayout(new BorderLayout());
> > - add(header, BorderLayout.NORTH);
> > - add(new MultilineText(text), BorderLayout.CENTER);
> > - add(lip, BorderLayout.SOUTH);
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > + private JTextField urlField = new JTextField(20);
> > + private String TYPE[] = {"internet","freenet"};
> > + private JComboBox typeCombo = new JComboBox(TYPE);
> > +
> > + public StarterPanel() {
> > + JLabel header =
> createHeaderLabel(i18n.str("weblog_wizard")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("welcome_panel_text"); //$NON-NLS-1$
> > +
> > +
> > + LabelledItemPanel lip = new LabelledItemPanel();
> > + lip.addItem(i18n.str("base_path"), pathField); //$NON-NLS-1$
> > + lip.addItem(i18n.str("base_url"), urlField); //$NON-NLS-1$
> > + lip.addItem(i18n.str("type"), typeCombo);
> > +
> > + popupManager.registerJTextComponent(pathField);
> > + popupManager.registerJTextComponent(urlField);
> > +
> > + setLayout(new BorderLayout());
> > + add(header, BorderLayout.NORTH);
> > + add(new MultilineText(text), BorderLayout.CENTER);
> > + add(lip, BorderLayout.SOUTH);
> > + }
> > +
> > + public boolean isValidData() {
> > if(pathField.getText().equals("")) //$NON-NLS-1$
> > {
> > JOptionPane.showMessageDialog(TBWizardDialog.this,
> > - i18n.str("invalid_path_prompt"),
> i18n.str("invalid_path"), //$NON-NLS-1$ //$NON-NLS-2$
> > - JOptionPane.WARNING_MESSAGE);
> > + i18n.str("invalid_path_prompt"),
> i18n.str("invalid_path"), //$NON-NLS-1$ //$NON-NLS-2$
> > + JOptionPane.WARNING_MESSAGE);
> > return false;
> > }
> >
> > if(urlField.getText().equals("")) //$NON-NLS-1$
> > {
> > JOptionPane.showMessageDialog(TBWizardDialog.this,
> > - i18n.str("invalid_url_prompt"),
> i18n.str("invalid_url"), //$NON-NLS-1$ //$NON-NLS-2$
> > - JOptionPane.WARNING_MESSAGE);
> > + i18n.str("invalid_url_prompt"),
> i18n.str("invalid_url"), //$NON-NLS-1$ //$NON-NLS-2$
> > + JOptionPane.WARNING_MESSAGE);
> > return false;
> > }
> >
> > - try
> > - {
> > - new URL(urlField.getText());
> >
> > - }
> > - catch(MalformedURLException ex) //invalid url
> > - {
> > - urlField.setText("http://" +
> > urlField.getText()); //$NON-NLS-1$
> > - }
> > -
> > - return true;
> > - }
> > + if(typeCombo.getSelectedItem().toString().equals("internet"))
{
> > + try {
> > + new URL(urlField.getText());
> > + } catch(MalformedURLException ex) //invalid url
> > + {
> > + urlField.setText("http://" +
> urlField.getText()); //$NON-NLS-1$
> > + }
> > + } else {
> > + return isValidKey(urlField.getText());
> > + }
> > +
> > + return true;
> > + }
> >
> > -
> > - public void saveProperties()
> > - {
> > - String path = pathField.getText();
> > - String url = urlField.getText();
> > - if(!url.endsWith("/")) //$NON-NLS-1$
> > - url += "/";; //$NON-NLS-1$
> > - String arcUrl = url + "archives"; //$NON-NLS-1$
> > - String mediaUrl = url + "media"; //$NON-NLS-1$
> > -
> > - weblog.setBlogUrls(path, url, arcUrl, mediaUrl);
> >
> > - }
> > - }
> > -
> > - private class TitleDescrPanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > + public Boolean isValidKey(String key){
> > + // TODO : Check if the key match a USK key
> > + return true;
> > + }
> > +
> > + public void saveProperties() {
> > + String path = pathField.getText();
> > + String url = urlField.getText();
> > + if(!url.endsWith("/")) //$NON-NLS-1$
> > + url += "/";; //$NON-NLS-1$
> > +
> > + String arcUrl = url + "archives"; //$NON-NLS-1$
> > + String mediaUrl = url + "media"; //$NON-NLS-1$
> > +
> > + weblog.setBlogUrls(path, url, arcUrl, mediaUrl);
> > + weblog.setType(typeCombo.getSelectedItem().toString());
> > + }
> > + }
> > +
> > + private class TitleDescrPanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > private JTextField titleField = new JTextField();
> > - private JTextArea textArea = new JTextArea(4, 4);
> > -
> > - public TitleDescrPanel()
> > - {
> > - setLayout(new BorderLayout());
> > -
> > - JPanel instrPanel = new JPanel(new BorderLayout());
> > - JLabel header =
> createHeaderLabel(i18n.str("title_and_description")); //$NON-NLS-1$
> > - String text =
> > - i18n.str("title_panel_text"); //$NON-NLS-1$
> > - instrPanel.add(header, BorderLayout.NORTH);
> > - instrPanel.add(new MultilineText(text),
> > BorderLayout.CENTER);
> > -
> > - popupManager.registerJTextComponent(titleField);
> > - popupManager.registerJTextComponent(textArea);
> > -
> > - LabelledItemPanel lip = new LabelledItemPanel();
> > - lip.addItem(i18n.str("site_title"), titleField);
> > //$NON-NLS-1$
> > - lip.addItem(i18n.str("description"), new
> JScrollPane(textArea)); //$NON-NLS-1$
> > -
> > - add(instrPanel, BorderLayout.NORTH);
> > - add(lip, BorderLayout.CENTER);
> >
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - if(titleField.getText().equals("")) //$NON-NLS-1$
> > - {
> > -
> > JOptionPane.showMessageDialog(TBWizardDialog.this,
> > - i18n.str("invalid_title_prompt"),
> > i18n.str("title"),
> JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
> > - return false;
> > - }
> > - return true;
> > - }
> > -
> > - public void saveProperties()
> > - {
> > - weblog.setTitle(titleField.getText());
> > - weblog.setDescription(textArea.getText());
> > - }
> > + private JTextArea textArea = new JTextArea(4, 4);
> >
> > - public String getTitle()
> > - {
> > + public TitleDescrPanel() {
> > + setLayout(new BorderLayout());
> > +
> > + JPanel instrPanel = new JPanel(new BorderLayout());
> > + JLabel header =
> createHeaderLabel(i18n.str("title_and_description")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("title_panel_text"); //$NON-NLS-1$
> > + instrPanel.add(header, BorderLayout.NORTH);
> > + instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> > +
> > + popupManager.registerJTextComponent(titleField);
> > + popupManager.registerJTextComponent(textArea);
> > +
> > + LabelledItemPanel lip = new LabelledItemPanel();
> > + lip.addItem(i18n.str("site_title"),
titleField); //$NON-NLS-1$
> > + lip.addItem(i18n.str("description"), new
> JScrollPane(textArea)); //$NON-NLS-1$
> > +
> > + add(instrPanel, BorderLayout.NORTH);
> > + add(lip, BorderLayout.CENTER);
> > + }
> > +
> > + public boolean isValidData() {
> > + if(titleField.getText().equals("")) //$NON-NLS-1$
> > + {
> > + JOptionPane.showMessageDialog(TBWizardDialog.this,
> > + i18n.str("invalid_title_prompt"),
> i18n.str("title"), JOptionPane.WARNING_MESSAGE); //$NON-NLS-1$ //$NON-NLS-2$
> > + return false;
> > + }
> > + return true;
> > + }
> > +
> > + public void saveProperties() {
> > + weblog.setTitle(titleField.getText());
> > + weblog.setDescription(textArea.getText());
> > + }
> > +
> > + public String getTitle() {
> > return titleField.getText();
> > }
> >
> > - public String getDescription()
> > - {
> > + public String getDescription() {
> > return textArea.getText();
> > }
> > - }
> > -
> > - private class CategoriesPanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > + }
> > +
> > + private class CategoriesPanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > private EditableList list;
> > - private WeblogEditableListModel model;
> > -
> > - public CategoriesPanel()
> > - {
> > - setLayout(new BorderLayout(5, 5));
> > -
> > - JPanel instrPanel = new JPanel(new BorderLayout());
> > - JLabel header =
createHeaderLabel(i18n.str("categories")); //$NON-NLS-1$
> > - String text =
> > - i18n.str("categories_panel_text"); //$NON-NLS-1$
> > - instrPanel.add(header, BorderLayout.NORTH);
> > - instrPanel.add(new MultilineText(text),
> > BorderLayout.CENTER);
> > -
> > - model = new
WeblogEditableListModel(WeblogEditableListModel.CATEGORIES);
> > - list = new EditableList(model);
> > - setBorder(BorderFactory.createEmptyBorder(12, 12, 12,
> > 12));
> > -
> > - add(instrPanel, BorderLayout.NORTH);
> > - add(list, BorderLayout.CENTER);
> > + private WeblogEditableListModel model;
> > +
> > + public CategoriesPanel() {
> > + setLayout(new BorderLayout(5, 5));
> >
> > + JPanel instrPanel = new JPanel(new BorderLayout());
> > + JLabel header =
> createHeaderLabel(i18n.str("categories")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("categories_panel_text"); //$NON-NLS-1$
> > + instrPanel.add(header, BorderLayout.NORTH);
> > + instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> >
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - return true;
> > - }
> > -
> > - public void saveProperties()
> > - {
> > - //ListModel lm = catList.getModel();
> > - try
> > - {
> > - model.syncListWithWeblog(weblog);
> > - }
> > - catch(Exception ex)
> > - {
> > - ex.printStackTrace();
> > - }
> > - }
> > + model = new
> WeblogEditableListModel(WeblogEditableListModel.CATEGORIES);
> > + list = new EditableList(model);
> > + setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
> > +
> > + add(instrPanel, BorderLayout.NORTH);
> > + add(list, BorderLayout.CENTER);
> > +
> > +
> > + }
> >
> > - public String[] getCategories()
> > - {
> > + public boolean isValidData() {
> > + return true;
> > + }
> > +
> > + public void saveProperties() {
> > + //ListModel lm = catList.getModel();
> > + try {
> > + model.syncListWithWeblog(weblog);
> > + } catch(Exception ex) {
> > + ex.printStackTrace();
> > + }
> > + }
> > +
> > + public String[] getCategories() {
> > List data = list.getListData();
> > String[] cats = new String[data.size()];
> > for(int i = 0; i < cats.length; i++)
> > @@ -513,59 +478,50 @@
> > return cats;
> > }
> >
> > - public WeblogEditableListModel getModel()
> > - {
> > + public WeblogEditableListModel getModel() {
> > return model;
> > }
> > - }
> > -
> > - private class AuthorsPanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > + }
> > +
> > + private class AuthorsPanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > private EditableList list;
> > - private WeblogEditableListModel model;
> > -
> > - public AuthorsPanel()
> > - {
> > - setLayout(new BorderLayout(5, 5));
> > -
> > - JPanel instrPanel = new JPanel(new BorderLayout());
> > - JLabel header = createHeaderLabel(i18n.str("authors"));
> > //$NON-NLS-1$
> > - String text =
> > - i18n.str("authors_panel_text"); //$NON-NLS-1$
> > - instrPanel.add(header, BorderLayout.NORTH);
> > - instrPanel.add(new MultilineText(text),
> > BorderLayout.CENTER);
> > -
> > - model = new
> > WeblogEditableListModel(WeblogEditableListModel.AUTHORS);
> > - list = new EditableList(model);
> > - setBorder(BorderFactory.createEmptyBorder(12, 12, 12,
> > 12));
> > -
> > - add(instrPanel, BorderLayout.NORTH);
> > - add(list, BorderLayout.CENTER);
> >
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - return true;
> > - }
> > -
> > - public void saveProperties()
> > - {
> > - try
> > - {
> > - model.syncListWithWeblog(weblog);
> > - }
> > - catch(Exception ex)
> > - {
> > - ex.printStackTrace();
> > - }
> > - }
> > + private WeblogEditableListModel model;
> >
> > - public Author[] getAuthors()
> > - {
> > + public AuthorsPanel() {
> > + setLayout(new BorderLayout(5, 5));
> > +
> > + JPanel instrPanel = new JPanel(new BorderLayout());
> > + JLabel header =
> createHeaderLabel(i18n.str("authors")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("authors_panel_text"); //$NON-NLS-1$
> > + instrPanel.add(header, BorderLayout.NORTH);
> > + instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> > +
> > + model = new
> WeblogEditableListModel(WeblogEditableListModel.AUTHORS);
> > + list = new EditableList(model);
> > + setBorder(BorderFactory.createEmptyBorder(12, 12, 12, 12));
> > +
> > + add(instrPanel, BorderLayout.NORTH);
> > + add(list, BorderLayout.CENTER);
> > + }
> > +
> > + public boolean isValidData() {
> > + return true;
> > + }
> > +
> > + public void saveProperties() {
> > + try {
> > + model.syncListWithWeblog(weblog);
> > + } catch(Exception ex) {
> > + ex.printStackTrace();
> > + }
> > + }
> > +
> > + public Author[] getAuthors() {
> > List data = list.getListData();
> > Author[] a = new Author[data.size()];
> > for(int i = 0; i < a.length; i++)
> > @@ -573,30 +529,27 @@
> > return a;
> > }
> >
> > - public WeblogEditableListModel getModel()
> > - {
> > + public WeblogEditableListModel getModel() {
> > return model;
> > }
> > - }
> > + }
> >
> > - private class EmailPanel extends PropertyPanel
> > - {
> > -
> > + private class EmailPanel extends PropertyPanel {
> > +
> > /**
> > - *
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > TBEmailPanel emailPanel;
> >
> > - public EmailPanel()
> > - {
> > + public EmailPanel() {
> > setLayout(new BorderLayout(5, 5));
> >
> > JPanel instrPanel = new JPanel(new BorderLayout());
> > JLabel header = createHeaderLabel("Email"); //$NON-NLS-1$
> > String text =
> > - i18n.str("specify_mail_server_prompt"); //$NON-NLS-1$
> > -
> > + i18n.str("specify_mail_server_prompt"); //$NON-NLS-1$
> > +
> > instrPanel.add(header, BorderLayout.NORTH);
> > instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> >
> > @@ -608,120 +561,106 @@
> > /* (non-Javadoc)
> > * @see
> net.sf.thingamablog.gui.properties.PropertyPanel#isValidData()
> > */
> > - public boolean isValidData()
> > - {
> > + public boolean isValidData() {
> > return emailPanel.isValidData();
> > }
> > -
> > +
> > /* (non-Javadoc)
> > * @see
> net.sf.thingamablog.gui.properties.PropertyPanel#saveProperties()
> > */
> > - public void saveProperties()
> > - {
> > - emailPanel.saveProperties();
> > + public void saveProperties() {
> > + emailPanel.saveProperties();
> > }
> >
> > }
> > -
> > - private class TransportPanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > +
> > + private class TransportPanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > TBPublishTransportPanel pubPanel;
> > -
> > - public TransportPanel()
> > - {
> > - setLayout(new BorderLayout());
> > -
> > - JPanel instrPanel = new JPanel(new BorderLayout());
> > - JLabel header =
createHeaderLabel(i18n.str("publishing")); //$NON-NLS-1$
> > - String text =
> > - i18n.str("publishing_panel_text"); //$NON-NLS-1$
> > - instrPanel.add(header, BorderLayout.NORTH);
> > - instrPanel.add(new MultilineText(text),
> > BorderLayout.CENTER);
> > -
> > - pubPanel = new TBPublishTransportPanel(weblog);
> > - add(instrPanel, BorderLayout.NORTH);
> > - add(pubPanel, BorderLayout.CENTER);
> >
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - return pubPanel.isValidData();
> > - }
> > -
> > - public void saveProperties()
> > - {
> > - pubPanel.saveProperties();
> > - }
> > - }
> > -
> > - private class TemplatePanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > +
> > + public TransportPanel() {
> > + setLayout(new BorderLayout());
> > +
> > + JPanel instrPanel = new JPanel(new BorderLayout());
> > + JLabel header =
> createHeaderLabel(i18n.str("publishing")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("publishing_panel_text"); //$NON-NLS-1$
> > + instrPanel.add(header, BorderLayout.NORTH);
> > + instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> > +
> > + pubPanel = new TBPublishTransportPanel(weblog);
> > + add(instrPanel, BorderLayout.NORTH);
> > + add(pubPanel, BorderLayout.CENTER);
> > + }
> > +
> > + public boolean isValidData() {
> > + return pubPanel.isValidData();
> > + }
> > +
> > + public void saveProperties() {
> > + pubPanel.saveProperties();
> > + }
> > + }
> > +
> > + private class TemplatePanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > - //private JComboBox tmplCombo;
> > + //private JComboBox tmplCombo;
> > //private TemplatePropertiesPanel propertyPanel;
> > private TemplateSelectionPanel selPanel;
> > -
> > - public TemplatePanel()
> > - {
> > - JPanel instrPanel = new JPanel(new BorderLayout());
> > - JLabel header =
createHeaderLabel(i18n.str("templates")); //$NON-NLS-1$
> > - String text =
> > - i18n.str("templates_panel_text"); //$NON-NLS-1$
> > - instrPanel.add(header, BorderLayout.NORTH);
> > - instrPanel.add(new MultilineText(text),
> > BorderLayout.CENTER);
> > -
> > - selPanel = new TemplateSelectionPanel(weblog);
> > -
> > +
> > + public TemplatePanel() {
> > + JPanel instrPanel = new JPanel(new BorderLayout());
> > + JLabel header =
> createHeaderLabel(i18n.str("templates")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("templates_panel_text"); //$NON-NLS-1$
> > + instrPanel.add(header, BorderLayout.NORTH);
> > + instrPanel.add(new MultilineText(text), BorderLayout.CENTER);
> > +
> > + selPanel = new TemplateSelectionPanel(weblog);
> > +
> > setLayout(new BorderLayout(5, 5));
> > - add(instrPanel, BorderLayout.NORTH);
> > - add(selPanel, BorderLayout.CENTER);
> >
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - if(selPanel.getSelectedPack() == null)
> > + add(instrPanel, BorderLayout.NORTH);
> > + add(selPanel, BorderLayout.CENTER);
> > + }
> > +
> > + public boolean isValidData() {
> > + if(selPanel.getSelectedPack() == null)
> > return false;
> > return true;
> > - }
> > -
> > - public void saveProperties()
> > - {
> > + }
> > +
> > + public void saveProperties() {
> > selectedPack = selPanel.getSelectedPack();
> > }
> > - }
> > -
> > - private class DonePanel extends PropertyPanel
> > - {
> > - /**
> > - *
> > + }
> > +
> > + private class DonePanel extends PropertyPanel {
> > + /**
> > + *
> > */
> > private static final long serialVersionUID = 1L;
> > -
> > - public DonePanel()
> > - {
> > - JLabel header = createHeaderLabel(i18n.str("done"));
> > //$NON-NLS-1$
> > - String text =
> > - i18n.str("finished_panel_text"); //$NON-NLS-1$
> > -
> > - setLayout(new BorderLayout());
> > - add(header, BorderLayout.NORTH);
> > - add(new MultilineText(text), BorderLayout.CENTER);
> > - }
> > -
> > - public boolean isValidData()
> > - {
> > - return true;
> > - }
> > -
> > - public void saveProperties()
> > - {
> > - }
> > - }
> > +
> > + public DonePanel() {
> > + JLabel header =
> createHeaderLabel(i18n.str("done")); //$NON-NLS-1$
> > + String text =
> > + i18n.str("finished_panel_text"); //$NON-NLS-1$
> > +
> > + setLayout(new BorderLayout());
> > + add(header, BorderLayout.NORTH);
> > + add(new MultilineText(text), BorderLayout.CENTER);
> > + }
> > +
> > + public boolean isValidData() {
> > + return true;
> > + }
> > +
> > + public void saveProperties() {
> > + }
> > + }
> > }
> >
> > Modified:
> trunk/apps/thingamablog/src/net/sf/thingamablog/xml/TBPersistFactory.java
> > ===================================================================
> > ---
> trunk/apps/thingamablog/src/net/sf/thingamablog/xml/TBPersistFactory.java
> 2008-02-08 00:42:57 UTC (rev 17692)
> > +++
> trunk/apps/thingamablog/src/net/sf/thingamablog/xml/TBPersistFactory.java
> 2008-02-08 01:25:29 UTC (rev 17693)
> > @@ -14,7 +14,7 @@
> > * 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,
> > @@ -62,361 +62,328 @@
> >
> >
> > /**
> > - *
> > + *
> > * Factory for persisting a Thingamablog XML "database"
> > - *
> > + *
> > * @author Bob Tantlinger
> > *
> > */
> > -public class TBPersistFactory
> > -{
> > +public class TBPersistFactory {
> > //private static final Logger logger =
> Logger.getLogger("net.sf.thingamablog.xml");
> >
> > /**
> > - * Saves the current data to an XML file
> > - *
> > - * @param blogList The list of weblogs
> > - * @param feedRootFolder The root FeedFolder
> > - * @param path The path to save the file to
> > - * @throws IOException If an IO error occurs
> > - * @throws JDOMException If a JDOM error occurs
> > - */
> > - public synchronized static void save(WeblogList blogList, FeedFolder
> feedRootFolder, String path)
> > - throws IOException, JDOMException
> > - {
> > - String mainRoot = "Thingamablog";
> > - //Document document = XMLUtils.initDocument(mainRoot, mainRoot,
> > new
> File(path));
> > - Document document = new Document(new Element(mainRoot));
> > - Comment comment =
> > - new Comment("Generated by Thingamablog. DO NOT EDIT
> > THIS FILE!!!");
> > - document.getContent().add(0, comment);
> > -
> > - Element weblogsRoot = new Element("Weblogs");
> > - Element feedsRoot = new Element("Feeds");
> > - saveWeblogsToXML(blogList, weblogsRoot);
> > - saveFeedFolder(feedRootFolder, feedsRoot);
> > -
> > - Element root = document.getRootElement();
> > - root.addContent(weblogsRoot);
> > - root.addContent(feedsRoot);
> > -
> > - XMLUtils.writeXML(document, path, true);
> > - }
> > -
> > - public static void loadData(String path, WeblogList list, FeedFolder
> rootFolder, WeblogBackend b1, FeedBackend b2)
> > - throws IOException, JDOMException
> > - {
> > - File f = new File(path);
> > - Document doc = createDocument(f);
> > - loadWeblogList(doc, f, list, b1);
> > - loadFeedTree(doc, rootFolder, b2);
> > - }
> > -
> > - private static Document createDocument(File file)
> > - throws IOException, JDOMException
> > - {
> > - SAXBuilder builder = new SAXBuilder(false);
> > - builder.setEntityResolver(new TBEntityResolver());
> > - Document document = builder.build(file);
> > - return document;
> > - }
> > -
> > -
> > -
> > - private static void saveFeedFolder(FeedFolder folder, Element element)
> > - {
> > - FeedFolder sub[] = folder.getFolders();
> > - for(int i = 0; i < sub.length; i++)
> > - {
> > - Element category = new Element("Folder");
> > - category.setAttribute("name", sub[i].getName());
> > - element.addContent(category);
> > - saveFeedFolder(sub[i], category);
> > - }
> > -
> > - Feed feeds[] = folder.getFeeds();
> > - for(int j = 0; j < feeds.length; j++)
> > - {
> > - Element link = new Element("Feed");
> > - link.setText(feeds[j].getURL());
> > -
> > - String title = feeds[j].getTitle();
> > - if(title != null)
> > - link.setAttribute("title", title);
> > - else
> > - link.setAttribute("title", "Untitled");
> > -
> > - link.setAttribute("archive", feeds[j].isLimitItems() +
> > "");
> > - link.setAttribute("limit", feeds[j].getItemLimit() +
> > "");
> > -
> > - Date updateDate = feeds[j].getLastUpdated();
> > - if(updateDate != null)
> > - link.setAttribute("update_date",
> > updateDate.getTime() + "");
> > - //link.setAttribute("update_failed",
> > feeds[j].isLastUpdateFailed()
> + "");
> > - if(feeds[j].isLastUpdateFailed())
> > - link.setAttribute("update_failed",
> feeds[j].getLastUpdateFailedReason());
> > -
> > - element.addContent(link);
> > - }
> > - }
> > -
> > - /**
> > - * Loads the FeedFolder heirarchy from an XML file
> > - *
> > - * @param rootFolder The root FeedFolder
> > - * @param path The path to the XML file
> > - * @param backend The backend for the feeds
> > - * @throws IOException If an IO error occurs
> > - * @throws JDOMException If a JDOM error occurs
> > - */
> > - public static void loadFeedTree(FeedFolder rootFolder, String path,
> FeedBackend backend)
> > - throws IOException, JDOMException
> > - {
> > - Document document = createDocument(new File(path));
> > - if(document == null)
> > - return;
> > -
> > - loadFeedTree(document, rootFolder, backend);
> > - }
> > -
> > - private static void loadFeedTree(Document document, FeedFolder
rootFolder,
> FeedBackend backend)
> > - {
> > - Element root = document.getRootElement();
> > - Element feedRoot = root.getChild("Feeds");
> > -
> > - if(feedRoot != null)
> > - {
> > - loadFeeds(rootFolder, feedRoot, backend);
> >
> > - }
> > - }
> > -
> > - private static void loadFeeds(FeedFolder folder, Element element,
> FeedBackend backend)
> > - {
> > - List contents = element.getChildren();
> > - Iterator contentsIt = contents.iterator();
> > -
> > - while(contentsIt.hasNext())
> > - {
> > - Element ele = (Element) contentsIt.next();
> > -
> > - /** The element is a category */
> > - if(ele.getName().equals("Folder"))
> > - {
> > - FeedFolder subFolder = loadFeedFolder(ele);
> > - folder.addFolder(subFolder);
> > - loadFeeds(subFolder, ele, backend);
> > - }
> > - /** The element is a favorite */
> > - else if (ele.getName().equals("Feed"))
> > - {
> > - folder.addFeed(loadFeed(ele, backend));
> > - }
> > - }
> > - }
> > -
> > - private static FeedFolder loadFeedFolder(Element element)
> > - {
> > -
> > - /** Name of the category */
> > - String folderName = element.getAttributeValue("name");
> > -
> > - /** Create a new category */
> > - FeedFolder sub = new FeedFolder(folderName);
> > - return sub;
> > - }
> > -
> > - private static Feed loadFeed(Element element, FeedBackend backend)
> > - {
> > - String url = "";
> > - String title = "";
> > - Date updated = null;
> > - boolean /*lastUpdateFailed = false,*/ archive = true;
> > - String failReason = null;
> > - int limit = 50;
> > -
> > - // Url of the feed
> > - if (element.getText() != null)
> > - url = element.getText();
> > -
> > - // Title of the feed
> > - if (element.getAttributeValue("title") != null)
> > - title = element.getAttributeValue("title");
> > -
> > - if(element.getAttributeValue("update_date") != null)
> > - {
> > - try
> > - {
> > - long epoch =
Long.parseLong(element.getAttributeValue("update_date"));
> > - updated = new Date(epoch);
> >
> > - }
> > - catch(Exception ex){}
> > - }
> > -
> > - try
> > - {
> > - limit =
> > Integer.parseInt(element.getAttributeValue("limit", "50"));
> > - }catch(Exception ex){}
> > -
> > - archive = element.getAttributeValue("archive",
> > "true").equals("true");
> > -
> > - if(element.getAttributeValue("update_failed") != null)
> > - {
> > - failReason = element.getAttributeValue("update_failed");
> > - }
> > -
> > - Feed f = new Feed(url);
> > - f.setTitle(title);
> > - f.setBackend(backend);
> > - f.setLastUpdated(updated);
> > - f.setLastUpdateFailed(failReason != null);
> > - f.setLimitItems(archive);
> > - f.setItemLimit(limit);
> > - if(failReason != null)
> > - f.setLastUpdateFailedReason(failReason);
> > - return f;
> > - }
> > -
> > -
> > - private static void saveWeblogsToXML(WeblogList blogList, Element root)
> > - throws IOException, JDOMException
> > - {
> > - for(int i = 0; i < blogList.getWeblogCount(); i++)
> > - {
> > - Weblog blog = blogList.getWeblogAt(i);
> > - Element bElement = createWeblogElement(blog);
> > - root.addContent(bElement);
> > - }
> > - }
> > -
> > - private static Element createWeblogElement(Weblog blog)
> > - {
> > - Element element = new Element("Weblog");
> > - element.setAttribute("title", blog.getTitle());
> > - element.setAttribute("key", blog.getKey());
> > - element.setAttribute("last_publish",
blog.getLastPublishDate().getTime()
> + "");
> > + * Saves the current data to an XML file
> > + *
> > + * @param blogList The list of weblogs
> > + * @param feedRootFolder The root FeedFolder
> > + * @param path The path to save the file to
> > + * @throws IOException If an IO error occurs
> > + * @throws JDOMException If a JDOM error occurs
> > + */
> > + public synchronized static void save(WeblogList blogList, FeedFolder
> feedRootFolder, String path)
> > + throws IOException, JDOMException {
> > + String mainRoot = "Thingamablog";
> > + //Document document = XMLUtils.initDocument(mainRoot, mainRoot,
new
> File(path));
> > + Document document = new Document(new Element(mainRoot));
> > + Comment comment =
> > + new Comment("Generated by Thingamablog. DO NOT EDIT THIS
> FILE!!!");
> > + document.getContent().add(0, comment);
> > +
> > + Element weblogsRoot = new Element("Weblogs");
> > + Element feedsRoot = new Element("Feeds");
> > + saveWeblogsToXML(blogList, weblogsRoot);
> > + saveFeedFolder(feedRootFolder, feedsRoot);
> > +
> > + Element root = document.getRootElement();
> > + root.addContent(weblogsRoot);
> > + root.addContent(feedsRoot);
> > +
> > + XMLUtils.writeXML(document, path, true);
> > + }
> > +
> > + public static void loadData(String path, WeblogList list, FeedFolder
> rootFolder, WeblogBackend b1, FeedBackend b2)
> > + throws IOException, JDOMException {
> > + File f = new File(path);
> > + Document doc = createDocument(f);
> > + loadWeblogList(doc, f, list, b1);
> > + loadFeedTree(doc, rootFolder, b2);
> > + }
> > +
> > + private static Document createDocument(File file)
> > + throws IOException, JDOMException {
> > + SAXBuilder builder = new SAXBuilder(false);
> > + builder.setEntityResolver(new TBEntityResolver());
> > + Document document = builder.build(file);
> > + return document;
> > + }
> > +
> > +
> > +
> > + private static void saveFeedFolder(FeedFolder folder, Element
element)
> {
> > + FeedFolder sub[] = folder.getFolders();
> > + for(int i = 0; i < sub.length; i++) {
> > + Element category = new Element("Folder");
> > + category.setAttribute("name", sub[i].getName());
> > + element.addContent(category);
> > + saveFeedFolder(sub[i], category);
> > + }
> > +
> > + Feed feeds[] = folder.getFeeds();
> > + for(int j = 0; j < feeds.length; j++) {
> > + Element link = new Element("Feed");
> > + link.setText(feeds[j].getURL());
> > +
> > + String title = feeds[j].getTitle();
> > + if(title != null)
> > + link.setAttribute("title", title);
> > + else
> > + link.setAttribute("title", "Untitled");
> > +
> > + link.setAttribute("archive", feeds[j].isLimitItems() + "");
> > + link.setAttribute("limit", feeds[j].getItemLimit() + "");
> > +
> > + Date updateDate = feeds[j].getLastUpdated();
> > + if(updateDate != null)
> > + link.setAttribute("update_date", updateDate.getTime()
> + "");
> > + //link.setAttribute("update_failed",
> feeds[j].isLastUpdateFailed() + "");
> > + if(feeds[j].isLastUpdateFailed())
> > + link.setAttribute("update_failed",
> feeds[j].getLastUpdateFailedReason());
> > +
> > + element.addContent(link);
> > + }
> > + }
> > +
> > + /**
> > + * Loads the FeedFolder heirarchy from an XML file
> > + *
> > + * @param rootFolder The root FeedFolder
> > + * @param path The path to the XML file
> > + * @param backend The backend for the feeds
> > + * @throws IOException If an IO error occurs
> > + * @throws JDOMException If a JDOM error occurs
> > + */
> > + public static void loadFeedTree(FeedFolder rootFolder, String path,
> FeedBackend backend)
> > + throws IOException, JDOMException {
> > + Document document = createDocument(new File(path));
> > + if(document == null)
> > + return;
> > +
> > + loadFeedTree(document, rootFolder, backend);
> > + }
> > +
> > + private static void loadFeedTree(Document document, FeedFolder
> rootFolder, FeedBackend backend) {
> > + Element root = document.getRootElement();
> > + Element feedRoot = root.getChild("Feeds");
> > +
> > + if(feedRoot != null) {
> > + loadFeeds(rootFolder, feedRoot, backend);
> > + }
> > + }
> > +
> > + private static void loadFeeds(FeedFolder folder, Element element,
> FeedBackend backend) {
> > + List contents = element.getChildren();
> > + Iterator contentsIt = contents.iterator();
> > +
> > + while(contentsIt.hasNext()) {
> > + Element ele = (Element) contentsIt.next();
> > +
> > + /** The element is a category */
> > + if(ele.getName().equals("Folder")) {
> > + FeedFolder subFolder = loadFeedFolder(ele);
> > + folder.addFolder(subFolder);
> > + loadFeeds(subFolder, ele, backend);
> > + }
> > + /** The element is a favorite */
> > + else if (ele.getName().equals("Feed")) {
> > + folder.addFeed(loadFeed(ele, backend));
> > + }
> > + }
> > + }
> > +
> > + private static FeedFolder loadFeedFolder(Element element) {
> > +
> > + /** Name of the category */
> > + String folderName = element.getAttributeValue("name");
> > +
> > + /** Create a new category */
> > + FeedFolder sub = new FeedFolder(folderName);
> > + return sub;
> > + }
> > +
> > + private static Feed loadFeed(Element element, FeedBackend backend) {
> > + String url = "";
> > + String title = "";
> > + Date updated = null;
> > + boolean /*lastUpdateFailed = false,*/ archive = true;
> > + String failReason = null;
> > + int limit = 50;
> > +
> > + // Url of the feed
> > + if (element.getText() != null)
> > + url = element.getText();
> > +
> > + // Title of the feed
> > + if (element.getAttributeValue("title") != null)
> > + title = element.getAttributeValue("title");
> > +
> > + if(element.getAttributeValue("update_date") != null) {
> > + try {
> > + long epoch =
> Long.parseLong(element.getAttributeValue("update_date"));
> > + updated = new Date(epoch);
> > + } catch(Exception ex){}
> > + }
> > +
> > + try {
> > + limit =
> Integer.parseInt(element.getAttributeValue("limit", "50"));
> > + }catch(Exception ex){}
> > +
> > + archive =
> element.getAttributeValue("archive", "true").equals("true");
> > +
> > + if(element.getAttributeValue("update_failed") != null) {
> > + failReason = element.getAttributeValue("update_failed");
> > + }
> > +
> > + Feed f = new Feed(url);
> > + f.setTitle(title);
> > + f.setBackend(backend);
> > + f.setLastUpdated(updated);
> > + f.setLastUpdateFailed(failReason != null);
> > + f.setLimitItems(archive);
> > + f.setItemLimit(limit);
> > + if(failReason != null)
> > + f.setLastUpdateFailedReason(failReason);
> > + return f;
> > + }
> > +
> > +
> > + private static void saveWeblogsToXML(WeblogList blogList, Element
root)
> > + throws IOException, JDOMException {
> > + for(int i = 0; i < blogList.getWeblogCount(); i++) {
> > + Weblog blog = blogList.getWeblogAt(i);
> > + Element bElement = createWeblogElement(blog);
> > + root.addContent(bElement);
> > + }
> > + }
> > +
> > + private static Element createWeblogElement(Weblog blog) {
> > + Element element = new Element("Weblog");
> > + element.setAttribute("title", blog.getTitle());
> > + element.setAttribute("key", blog.getKey());
> > + element.setAttribute("last_publish",
> blog.getLastPublishDate().getTime() + "");
> > element.setAttribute("publish_failed", blog.isPublishFailed()
> + "");
> > - Element descr = new Element("Description");
> > - descr.addContent(blog.getDescription());
> > - element.addContent(descr);
> > - element.addContent(createPingServicesElement(blog));
> > - element.addContent(createPublishTransportElement(blog));
> > + Element descr = new Element("Description");
> > + descr.addContent(blog.getDescription());
> > + element.addContent(descr);
> > + element.addContent(createPingServicesElement(blog));
> > + element.addContent(createPublishTransportElement(blog));
> > element.addContent(createMailSettingsElement(blog));
> > -
> > - if(blog instanceof TBWeblog)
> > - {
> > - TBWeblog tbBlog = (TBWeblog)blog;
> > - return createTBWeblogElement(tbBlog, element);
> > - }
> > - return element;
> > - }
> > -
> > - private static Element createPingServicesElement(Weblog blog)
> > - {
> > - Element element = new Element("PingServices");
> > - PingService ps[] = blog.getPingServices();
> > - for(int i = 0; i < ps.length; i++)
> > - {
> > - if(ps[i] instanceof WeblogsDotComPing)
> > - {
> > - Element ping = new Element("WeblogsDotComPing");
> > - ping.setAttribute("name",
> > ps[i].getServiceName());
> > - ping.setAttribute("url", ps[i].getServiceUrl());
> > - ping.setAttribute("enabled", ps[i].isEnabled()
> > + "");
> > - element.addContent(ping);
> > - }
> > - }
> > - return element;
> > - }
> > -
> > - private static Element createTBWeblogElement(TBWeblog blog, Element
> element)
> > - {
> > - element.setName("TBWeblog");
> > - element.setAttribute("url", blog.getBaseUrl());
> > - element.setAttribute("arc_url", blog.getArchiveUrl());
> > - element.setAttribute("media_url", blog.getMediaUrl());
> > - element.setAttribute("base_path", blog.getBasePath());
> > - element.setAttribute("base_date",
> > blog.getArchiveBaseDate().getTime()
> + "");
> > - element.setAttribute("arc_policy", blog.getArchivePolicy() +
> > "");
> > - element.setAttribute("day_interval",
> > blog.getArchiveByDayInterval()
> + "");
> > - element.setAttribute("arc_ext", blog.getArchivesExtension());
> > - element.setAttribute("cat_ext", blog.getCategoriesExtension());
> > +
> > + if(blog instanceof TBWeblog) {
> > + TBWeblog tbBlog = (TBWeblog)blog;
> > + return createTBWeblogElement(tbBlog, element);
> > + }
> > + return element;
> > + }
> > +
> > + private static Element createPingServicesElement(Weblog blog) {
> > + Element element = new Element("PingServices");
> > + PingService ps[] = blog.getPingServices();
> > + for(int i = 0; i < ps.length; i++) {
> > + if(ps[i] instanceof WeblogsDotComPing) {
> > + Element ping = new Element("WeblogsDotComPing");
> > + ping.setAttribute("name", ps[i].getServiceName());
> > + ping.setAttribute("url", ps[i].getServiceUrl());
> > + ping.setAttribute("enabled", ps[i].isEnabled() + "");
> > + element.addContent(ping);
> > + }
> > + }
> > + return element;
> > + }
> > +
> > + private static Element createTBWeblogElement(TBWeblog blog, Element
> element) {
> > + element.setName("TBWeblog");
> > + element.setAttribute("url", blog.getBaseUrl());
> > + element.setAttribute("arc_url", blog.getArchiveUrl());
> > + element.setAttribute("media_url", blog.getMediaUrl());
> > + element.setAttribute("base_path", blog.getBasePath());
> > + element.setAttribute("base_date",
> blog.getArchiveBaseDate().getTime() + "");
> > + element.setAttribute("arc_policy", blog.getArchivePolicy() + "");
> > + element.setAttribute("day_interval",
blog.getArchiveByDayInterval()
> + "");
> > + element.setAttribute("arc_ext", blog.getArchivesExtension());
> > + element.setAttribute("cat_ext", blog.getCategoriesExtension());
> > element.setAttribute("gen_cat_feed",
blog.isGenerateCategoryFeeds()
> + "");
> > element.setAttribute("cat_feed_ext",
> blog.getCategoriesFeedExtension());
> > - element.setAttribute("entry_ext", blog.getEntryPageExtension());
> > - element.setAttribute("gen_rss", blog.isGenerateRssFeed() + "");
> > - element.setAttribute("gen_arc_index",
> > blog.isGenerateArchiveIndex()
> + "");
> > - element.setAttribute("gen_entries", blog.isGenerateEntryPages()
> > + "");
> > - element.setAttribute("fp_filename",
> > blog.getFrontPageFileName());
> > - element.setAttribute("rss_filename", blog.getRssFileName());
> > - element.setAttribute("arc_index_filename",
> blog.getArchiveIndexFileName());
> > - element.setAttribute("locale", blog.getLocale().toString());
> > - element.setAttribute("publish_all", blog.isPublishAll() + "");
> > -
> > - Element outdatedArcs = new Element("OutdatedArchives");
> > - ArchiveRange ar[] = blog.getOutdatedArchives();
> > - for(int i = 0; i < ar.length; i++)
> > - {
> > - Element arcRange = new Element("Archive");
> > - arcRange.setAttribute("start",
> > ar[i].getStartDate().getTime() + "");
> > - arcRange.setAttribute("end",
> > ar[i].getExpirationDate().getTime()
+ "");
> > - outdatedArcs.addContent(arcRange);
> > - }
> > - element.addContent(outdatedArcs);
> > -
> > - Element outdatedCats = new Element("OutdatedCategories");
> > - String cats[] = blog.getOutdatedCategories();
> > - for(int i = 0; i < cats.length; i++)
> > - {
> > - Element category = new Element("Category");
> > - category.setText(cats[i]);
> > - outdatedCats.addContent(category);
> > - }
> > - element.addContent(outdatedCats);
> > -
> > - Element outdatedEntries = new Element("OutdatedEntries");
> > - long ids[] = blog.getOutdatedEntryIDs();
> > - for(int i = 0; i < ids.length; i++)
> > - {
> > - Element ent = new Element("Entry");
> > - ent.setText(ids[i] + "");
> > - outdatedEntries.addContent(ent);
> > - }
> > - element.addContent(outdatedEntries);
> > -
> > - Element genElement = new Element("Generator");
> > - PageGenerator gen = blog.getPageGenerator();
> > - genElement.setAttribute("charset", gen.getCharset());
> > - genElement.setAttribute("range_format",
> > gen.getArchiveRangeFormat());
> > - genElement.setAttribute("span_range", gen.isSpanArcRange() +
> > "");
> > - genElement.setAttribute("date_format", gen.getDateFormat());
> > - genElement.setAttribute("time_format", gen.getTimeFormat());
> > - genElement.setAttribute("front_asc", gen.isFrontPageAscending()
> > + "");
> > - genElement.setAttribute("cat_asc",
> > gen.isCategoryPageAscending() + "");
> > - genElement.setAttribute("arc_asc", gen.isArchivePageAscending()
> > + "");
> > - genElement.setAttribute("limit_front", gen.isLimitFrontPage() +
> > "");
> > - genElement.setAttribute("front_page_limit",
> > gen.getFrontPageLimit()
> + "");
> > - genElement.setAttribute("limit_cat", gen.isLimitCategoryPage()
> > + "");
> > - genElement.setAttribute("cat_page_limit",
> > gen.getCategoryPageLimit()
> + "");
> > - genElement.setAttribute("limit_rss_body", gen.isLimitRssEntry()
> > + "");
> > -
> > -
> > - Element customTagsElement = new Element("CustomTags");
> > - CustomTag tags[] = gen.getCustomTags();
> > - for(int i = 0; i < tags.length; i++)
> > - {
> > - Element tag = new Element("Tag");
> > - tag.setAttribute("name", tags[i].getName());
> > - tag.setText(tags[i].getValue());
> > - customTagsElement.addContent(tag);
> > - }
> > -
> > - genElement.addContent(customTagsElement);
> > - element.addContent(genElement);
> > - return element;
> > - }
> > + element.setAttribute("entry_ext", blog.getEntryPageExtension());
> > + element.setAttribute("gen_rss", blog.isGenerateRssFeed() + "");
> > + element.setAttribute("gen_arc_index",
blog.isGenerateArchiveIndex()
> + "");
> > + element.setAttribute("gen_entries", blog.isGenerateEntryPages()
> + "");
> > + element.setAttribute("fp_filename", blog.getFrontPageFileName());
> > + element.setAttribute("rss_filename", blog.getRssFileName());
> > + element.setAttribute("arc_index_filename",
> blog.getArchiveIndexFileName());
> > + element.setAttribute("locale", blog.getLocale().toString());
> > + element.setAttribute("publish_all", blog.isPublishAll() + "");
> > + element.setAttribute("type", blog.getType());
> > +
> > + Element outdatedArcs = new Element("OutdatedArchives");
> > + ArchiveRange ar[] = blog.getOutdatedArchives();
> > + for(int i = 0; i < ar.length; i++) {
> > + Element arcRange = new Element("Archive");
> > + arcRange.setAttribute("start", ar[i].getStartDate().getTime()
> + "");
> > + arcRange.setAttribute("end",
> ar[i].getExpirationDate().getTime() + "");
> > + outdatedArcs.addContent(arcRange);
> > + }
> > + element.addContent(outdatedArcs);
> > +
> > + Element outdatedCats = new Element("OutdatedCategories");
> > + String cats[] = blog.getOutdatedCategories();
> > + for(int i = 0; i < cats.length; i++) {
> > + Element category = new Element("Category");
> > + category.setText(cats[i]);
> > + outdatedCats.addContent(category);
> > + }
> > + element.addContent(outdatedCats);
> > +
> > + Element outdatedEntries = new Element("OutdatedEntries");
> > + long ids[] = blog.getOutdatedEntryIDs();
> > + for(int i = 0; i < ids.length; i++) {
> > + Element ent = new Element("Entry");
> > + ent.setText(ids[i] + "");
> > + outdatedEntries.addContent(ent);
> > + }
> > + element.addContent(outdatedEntries);
> > +
> > + Element genElement = new Element("Generator");
> > + PageGenerator gen = blog.getPageGenerator();
> > + genElement.setAttribute("charset", gen.getCharset());
> > + genElement.setAttribute("range_format",
> gen.getArchiveRangeFormat());
> > + genElement.setAttribute("span_range", gen.isSpanArcRange() + "");
> > + genElement.setAttribute("date_format", gen.getDateFormat());
> > + genElement.setAttribute("time_format", gen.getTimeFormat());
> > + genElement.setAttribute("front_asc", gen.isFrontPageAscending()
> + "");
> > + genElement.setAttribute("cat_asc", gen.isCategoryPageAscending()
> + "");
> > + genElement.setAttribute("arc_asc", gen.isArchivePageAscending()
> + "");
> > + genElement.setAttribute("limit_front", gen.isLimitFrontPage()
> + "");
> > + genElement.setAttribute("front_page_limit",
gen.getFrontPageLimit()
> + "");
> > + genElement.setAttribute("limit_cat", gen.isLimitCategoryPage()
> + "");
> > + genElement.setAttribute("cat_page_limit",
> gen.getCategoryPageLimit() + "");
> > + genElement.setAttribute("limit_rss_body", gen.isLimitRssEntry()
> + "");
> > +
> > +
> > + Element customTagsElement = new Element("CustomTags");
> > + CustomTag tags[] = gen.getCustomTags();
> > + for(int i = 0; i < tags.length; i++) {
> > + Element tag = new Element("Tag");
> > + tag.setAttribute("name", tags[i].getName());
> > + tag.setText(tags[i].getValue());
> > + customTagsElement.addContent(tag);
> > + }
> > +
> > + genElement.addContent(customTagsElement);
> > + element.addContent(genElement);
> > + return element;
> > + }
> >
> > - private static Element createMailSettingsElement(Weblog blog)
> > - {
> > + private static Element createMailSettingsElement(Weblog blog) {
> > Element mailSettings = new Element("MailSettings");
> > mailSettings.setAttribute("enabled",
> blog.isImportFromEmailEnabled() + "");
> > if(blog.getLastEmailCheck() != null)
> > @@ -432,36 +399,32 @@
> > transport.setAttribute("port", rpt.getPort() + "");
> > transport.setAttribute("user", rpt.getUserName());
> > if(rpt.isSavePassword())
> > - transport.setAttribute("password",
> > - PasswordUtil.encrypt(rpt.getPassword(), PasswordUtil.KEY));
> > + transport.setAttribute("password",
> > + PasswordUtil.encrypt(rpt.getPassword(),
> PasswordUtil.KEY));
> >
> > mailSettings.addContent(transport);
> > return mailSettings;
> > }
> > -
> > - private static Element createPublishTransportElement(Weblog blog)
> > - {
> > - Element transport = new Element("Transport");
> > - PublishTransport pt = blog.getPublishTransport();
> > - if(pt instanceof RemoteTransport)
> > - {
> > - RemoteTransport rpt = (RemoteTransport)pt;
> > - transport.setAttribute("type", "sftp");
> > - transport.setAttribute("server", rpt.getAddress());
> > - transport.setAttribute("port", rpt.getPort() + "");
> > - transport.setAttribute("user", rpt.getUserName());
> > - if(rpt.isSavePassword())
> > - transport.setAttribute("password",
> > - PasswordUtil.encrypt(rpt.getPassword(),
> > PasswordUtil.KEY));
> > - if(rpt instanceof FTPTransport)
> > - {
> > - FTPTransport ftp = (FTPTransport)rpt;
> > - transport.setAttribute("type", "ftp");
> > - transport.setAttribute("passive",
> > ftp.isPassiveMode()+"");
> > +
> > + private static Element createPublishTransportElement(Weblog blog) {
> > + Element transport = new Element("Transport");
> > + PublishTransport pt = blog.getPublishTransport();
> > + if(pt instanceof RemoteTransport) {
> > + RemoteTransport rpt = (RemoteTransport)pt;
> > + transport.setAttribute("type", "sftp");
> > + transport.setAttribute("server", rpt.getAddress());
> > + transport.setAttribute("port", rpt.getPort() + "");
> > + transport.setAttribute("user", rpt.getUserName());
> > + if(rpt.isSavePassword())
> > + transport.setAttribute("password",
> > + PasswordUtil.encrypt(rpt.getPassword(),
> PasswordUtil.KEY));
> > + if(rpt instanceof FTPTransport) {
> > + FTPTransport ftp = (FTPTransport)rpt;
> > + transport.setAttribute("type", "ftp");
> > + transport.setAttribute("passive",
ftp.isPassiveMode()+"");
> > Element e = new Element("ASCIITypes");
> > List exts = ftp.getASCIIExtensions();
> > - for(Iterator it = exts.iterator(); it.hasNext();)
> > - {
> > + for(Iterator it = exts.iterator(); it.hasNext();) {
> > String ex = it.next().toString();
> > Element c = new Element("ext");
> > c.setText(ex);
> > @@ -469,283 +432,252 @@
> > }
> >
> > transport.addContent(e);
> > - }
> > - }
> > - else
> > - {
> > - transport.setAttribute("type", "local");
> > - }
> > -
> > - return transport;
> > - }
> > -
> > -
> > - /**
> > - * Creates a WeblogList from an XML file
> > - *
> > - * @param path The path to the XML file
> > - * @param backend The backend to connect the weblogs to
> > - * @param authStore The author store for the weblogs
> > - * @param catStore The category store for the weblogs
> > - * @return A list of weblogs
> > - * @throws IOException If an IO error occurs
> > - * @throws JDOMException If a JDOM error occurs
> > - */
> > - public static WeblogList loadWeblogsFromXML(String path, WeblogBackend
> backend)
> > - throws IOException, JDOMException
> > - {
> > - WeblogList list = new WeblogList();
> > - File f = new File(path);
> > - Document document = createDocument(f);
> > - loadWeblogList(document, f, list, backend);
> > -
> > - return list;
> > - }
> > -
> > - private static void loadWeblogList(Document document, File path,
> WeblogList list, WeblogBackend backend)
> > - {
> > - if(document == null)//couldn't load xml file
> > - return;//return empty WeblogList
> > -
> > - Element root = document.getRootElement();
> > - List weblogs = root.getChild("Weblogs").getChildren();
> > - Iterator weblogsIt = weblogs.iterator();
> > - //children should all be weblogs
> > - while(weblogsIt.hasNext())
> > - {
> > - Element blogElement = (Element)weblogsIt.next();
> > - Weblog w = createWeblogFromElement(blogElement,path);
> > - if(w != null)
> > - {
> > - w.setBackend(backend);
> > - list.addWeblog(w);
> > - }
> > - }
> > - list.sortList();
> > - }
> > -
> > - private static Weblog createWeblogFromElement(Element blogEle, File
path)
> > - {
> > - Weblog weblog = null;
> > - //different weblog types might be added later
> > - //for now we're only dealing with TBWeblogs
> > - if(blogEle.getName().equals("TBWeblog"))
> > - weblog = createTBWeblogFromElement(blogEle, path);
> > -
> > - if(weblog == null)
> > - return null;
> > -
> > -
> > weblog.setPublishTransport(loadPublishTransportFromXML(blogEle));
> > - loadPingServicesFromXML(blogEle, weblog);
> > + }
> > + } else {
> > + transport.setAttribute("type", "local");
> > + }
> > +
> > + return transport;
> > + }
> > +
> > +
> > + /**
> > + * Creates a WeblogList from an XML file
> > + *
> > + * @param path The path to the XML file
> > + * @param backend The backend to connect the weblogs to
> > + * @param authStore The author store for the weblogs
> > + * @param catStore The category store for the weblogs
> > + * @return A list of weblogs
> > + * @throws IOException If an IO error occurs
> > + * @throws JDOMException If a JDOM error occurs
> > + */
> > + public static WeblogList loadWeblogsFromXML(String path,
WeblogBackend
> backend)
> > + throws IOException, JDOMException {
> > + WeblogList list = new WeblogList();
> > + File f = new File(path);
> > + Document document = createDocument(f);
> > + loadWeblogList(document, f, list, backend);
> > +
> > + return list;
> > + }
> > +
> > + private static void loadWeblogList(Document document, File path,
> WeblogList list, WeblogBackend backend) {
> > + if(document == null)//couldn't load xml file
> > + return;//return empty WeblogList
> > +
> > + Element root = document.getRootElement();
> > + List weblogs = root.getChild("Weblogs").getChildren();
> > + Iterator weblogsIt = weblogs.iterator();
> > + //children should all be weblogs
> > + while(weblogsIt.hasNext()) {
> > + Element blogElement = (Element)weblogsIt.next();
> > + Weblog w = createWeblogFromElement(blogElement,path);
> > + if(w != null) {
> > + w.setBackend(backend);
> > + list.addWeblog(w);
> > + }
> > + }
> > + list.sortList();
> > + }
> > +
> > + private static Weblog createWeblogFromElement(Element blogEle, File
> path) {
> > + Weblog weblog = null;
> > + //different weblog types might be added later
> > + //for now we're only dealing with TBWeblogs
> > + if(blogEle.getName().equals("TBWeblog"))
> > + weblog = createTBWeblogFromElement(blogEle, path);
> > +
> > + if(weblog == null)
> > + return null;
> > +
> > + weblog.setPublishTransport(loadPublishTransportFromXML(blogEle));
> > + loadPingServicesFromXML(blogEle, weblog);
> > loadEmailSettingsFromXML(blogEle, weblog);
> > - weblog.setTitle(blogEle.getAttributeValue("title", "Untitled"));
> > - String description = "";
> > - Element desc = blogEle.getChild("Description");
> > - if(desc != null)
> > - description = desc.getText();
> > - weblog.setDescription(description);
> > - try
> > - {
> > - long time = Long.parseLong(
> > - blogEle.getAttributeValue("last_publish",
> > - System.currentTimeMillis() + ""));
> > - weblog.setLastPublishDate(new Date(time));
> > - }
> > - catch(Exception ex){}
> > + weblog.setTitle(blogEle.getAttributeValue("title", "Untitled"));
> > + String description = "";
> > + Element desc = blogEle.getChild("Description");
> > + if(desc != null)
> > + description = desc.getText();
> > + weblog.setDescription(description);
> > + try {
> > + long time = Long.parseLong(
> > + blogEle.getAttributeValue("last_publish",
> > + System.currentTimeMillis() + ""));
> > + weblog.setLastPublishDate(new Date(time));
> > + } catch(Exception ex){}
> >
>
weblog.setPublishFailed(Boolean.parseBoolean(blogEle.getAttributeValue("publish_failed",
"false")));
> > -
> > +
> > return weblog; //element wasn't a known type
> > - }
> > -
> > - private static TBWeblog createTBWeblogFromElement(Element element, File
> path)
> > - {
> > - String key = element.getAttributeValue("key");
> > - if(key == null)
> > - return null; //can't continue if this weblog doesnt
> > have a unique key
> > -
> > - TBWeblog tb = new TBWeblog(path.getParentFile(), key);
> > - String genericUrl = "http://www.mysite.com";
> > - String basePath = element.getAttributeValue("base_path", "/");
> > - String url = element.getAttributeValue("url", genericUrl);
> > - String arcUrl = element.getAttributeValue("arc_url",
> > genericUrl);
> > - String mediaUrl = element.getAttributeValue("media_url",
> > genericUrl);
> > - tb.setBlogUrls(basePath, url, arcUrl, mediaUrl);
> > -
> > -
tb.setCategoriesExtension(element.getAttributeValue("cat_ext", ".html"));
> > - tb.setArchivesExtension(element.getAttributeValue("arc_ext",
> > ".html"));
> > -
> tb.setEntryPageExtension(element.getAttributeValue("entry_ext", ".html"));
> > -
>
tb.setFrontPageFileName(element.getAttributeValue("fp_filename", "blog.html"));
> > -
tb.setRssFileName(element.getAttributeValue("rss_filename", "rss.xml"));
> > -
>
tb.setArchiveIndexFileName(element.getAttributeValue("arc_index_filename",
"list.html"));
> > -
> > + }
> > +
> > + private static TBWeblog createTBWeblogFromElement(Element element,
File
> path) {
> > + String key = element.getAttributeValue("key");
> > + if(key == null)
> > + return null; //can't continue if this weblog doesnt have a
> unique key
> > +
> > + TBWeblog tb = new TBWeblog(path.getParentFile(), key);
> > + String genericUrl = "http://www.mysite.com";
> > + String basePath = element.getAttributeValue("base_path", "/");
> > + String url = element.getAttributeValue("url", genericUrl);
> > + String arcUrl = element.getAttributeValue("arc_url", genericUrl);
> > + String mediaUrl = element.getAttributeValue("media_url",
> genericUrl);
> > + tb.setBlogUrls(basePath, url, arcUrl, mediaUrl);
> > +
> > +
> tb.setCategoriesExtension(element.getAttributeValue("cat_ext", ".html"));
> > +
> tb.setArchivesExtension(element.getAttributeValue("arc_ext", ".html"));
> > +
> tb.setEntryPageExtension(element.getAttributeValue("entry_ext", ".html"));
> > +
>
tb.setFrontPageFileName(element.getAttributeValue("fp_filename", "blog.html"));
> > +
> tb.setRssFileName(element.getAttributeValue("rss_filename", "rss.xml"));
> > +
>
tb.setArchiveIndexFileName(element.getAttributeValue("arc_index_filename",
"list.html"));
> > +
> >
>
tb.setGenerateCategoryFeeds(element.getAttributeValue("gen_cat_feed",
"false").equals("true"));
> >
>
tb.setCategoriesFeedExtension(element.getAttributeValue("cat_feed_ext",
".rss"));
> >
> > -
>
tb.setGenerateRssFeed(element.getAttributeValue("gen_rss",
"true").equals("true"));
> > -
>
tb.setGenerateArchiveIndex(element.getAttributeValue("gen_arc_index",
"true").equals("true"));
> > -
>
tb.setGenerateEntryPages(element.getAttributeValue("gen_entries",
"false").equals("true"));
> > -
> > - tb.setLocale(createLocale(element.getAttributeValue("locale",
> Locale.getDefault().toString())));
> > -
>
tb.setPublishAll(element.getAttributeValue("publish_all",
"true").equals("true"));
> > -
> > - int arcPolicy = TBWeblog.ARCHIVE_MONTHLY;
> > - int dayInterval = 5;
> > - Date arcBaseDate = new Date(0);
> > - try
> > - {
> > - arcPolicy = Integer.parseInt(
> > - element.getAttributeValue("arc_policy",
> Integer.toString(TBWeblog.ARCHIVE_MONTHLY)));
> > - dayInterval =
> Integer.parseInt(element.getAttributeValue("day_interval", "5"));
> > - long time =
> > Long.parseLong(element.getAttributeValue("base_date"));
> > - arcBaseDate = new Date(time);
> > - }
> > - catch(Exception ex){}
> > - tb.setArchivePolicy(arcPolicy);
> > - tb.setArchiveByDayInterval(dayInterval);
> > - tb.setArchiveBaseDate(arcBaseDate);
> > -
> > - //load outdated archives from xml
> > - Element outdatedArcs = element.getChild("OutdatedArchives");
> > - if(outdatedArcs != null)
> > - {
> > - Iterator itr = (outdatedArcs.getChildren()).iterator();
> > - while(itr.hasNext())
> > - {
> > - Date start = new Date();
> > - Date exp = new Date();
> > - Element e = (Element)itr.next();
> > - if(e.getName().equals("Archive"))
> > - {
> > - try
> > - {
> > - long d1 =
> > Long.parseLong(e.getAttributeValue("start"));
> > - long d2 =
> > Long.parseLong(e.getAttributeValue("end"));
> > - start.setTime(d1);
> > - exp.setTime(d2);
> > - tb.addOutdatedArchive(new
> > ArchiveRange(start, exp));
> > - }
> > - catch(Exception ex){}
> > - }
> > - }
> > - }
> > -
> > - //load outdated cats from xml
> > - Element outdatedCats = element.getChild("OutdatedCategories");
> > - if(outdatedCats != null)
> > - {
> > - Iterator itr = (outdatedCats.getChildren()).iterator();
> > - while(itr.hasNext())
> > - {
> > - Element e = (Element)itr.next();
> > - if(e.getName().equals("Category"))
> > - {
> > - tb.addOutdatedCategory(e.getText());
> > - }
> > - }
> > - }
> > -
> > - //load outdated entries from xml
> > - Element outdatedEnts = element.getChild("OutdatedEntries");
> > - if(outdatedEnts != null)
> > - {
> > - Iterator itr = (outdatedEnts.getChildren()).iterator();
> > - while(itr.hasNext())
> > - {
> > - Element e = (Element)itr.next();
> > - if(e.getName().equals("Entry"))
> > - {
> > - try{
> > - long id =
> > Long.parseLong(e.getText());
> > - tb.addOutdatedEntryID(new Long(id));
> > - }catch(Exception ex){}
> >
> > - }
> > - }
> > - }
> > -
> > - loadGeneratorSettingsFromXML(tb, element);
> > - return tb;
> > - }
> > -
> > - private static void loadGeneratorSettingsFromXML(TBWeblog tbw, Element
> element)
> > - {
> > - //set up the page generator defaults
> > - PageGenerator gen = tbw.getPageGenerator();
> > - Element genElement = element.getChild("Generator");
> > - if(genElement == null)
> > - return;
> > -
> > - gen.setCharset(genElement.getAttributeValue("charset",
> > "UTF-8"));
> > - gen.setDateFormat(genElement.getAttributeValue("date_format"));
> > - gen.setTimeFormat(genElement.getAttributeValue("time_format"));
> > - String s = genElement.getAttributeValue("span_range");
> > - boolean span = s != null && s.equals("true");
> > -
> > gen.setArchiveRangeFormat(genElement.getAttributeValue("range_format"),
> span);
> > - s = genElement.getAttributeValue("front_asc");
> > - gen.setFrontPageAscending(s != null && s.equals("true"));
> > - s = genElement.getAttributeValue("arc_asc");
> > - gen.setArchivePageAscending(s != null && s.equals("true"));
> > - s = genElement.getAttributeValue("cat_asc");
> > - gen.setCategoryPageAscending(s != null && s.equals("true"));
> > -
> > - int fpLimit = 10;
> > - int catLimit = 20;
> > - try
> > - {
> > - fpLimit =
> Integer.parseInt(genElement.getAttributeValue("front_page_limit"));
> > - catLimit =
> Integer.parseInt(genElement.getAttributeValue("cat_page_limit"));
> > - }
> > - catch(Exception ex){}
> > -
> > -
>
gen.setLimitFrontPage(genElement.getAttributeValue("limit_front",
"true").equals("true"));
> > - gen.setFrontPageLimit(fpLimit);
> > -
>
gen.setLimitCategoryPage(genElement.getAttributeValue("limit_cat",
"true").equals("true"));
> > - gen.setCategoryPageLimit(catLimit);
> > - s = genElement.getAttributeValue("limit_rss_body");
> > - gen.setLimitRssEntry(s != null && s.equals("true"));
> > -
> > - Element custTags = genElement.getChild("CustomTags");
> > - if(custTags == null)return;
> > - Iterator itr = custTags.getChildren().iterator();
> > - while(itr.hasNext())
> > - {
> > - Element e = (Element)itr.next();
> > - if(e.getName().equals("Tag"))
> > - {
> > - String name = e.getAttributeValue("name");
> > - if(name == null)
> > - continue;
> > - String value = e.getText();
> > - CustomTag tag = new CustomTag(name, value);
> > - gen.addCustomTag(tag);
> > - }
> > - }
> > - }
> > -
> > -
> > -
> > - private static void loadPingServicesFromXML(Element parent, Weblog blog)
> > - {
> > - Element services = parent.getChild("PingServices");
> > - if(services == null)
> > - services = new Element("PingServices");
> > -
> > - Iterator itr = (services.getChildren()).iterator();
> > - while(itr.hasNext())
> > - {
> > - Element service = (Element)itr.next();
> > - if(service.getName().equals("WeblogsDotComPing"))
> > - {
> > - WeblogsDotComPing ping = new
> > WeblogsDotComPing();
> > -
> > ping.setServiceUrl(service.getAttributeValue("url"));
> > -
> > ping.setServiceName(service.getAttributeValue("name"));
> > -
>
ping.setEnabled(service.getAttributeValue("enabled", "true").equals("true"));
> > - blog.addPingService(ping);
> > - }
> > - }
> > - }
> > +
>
tb.setGenerateRssFeed(element.getAttributeValue("gen_rss",
"true").equals("true"));
> > +
>
tb.setGenerateArchiveIndex(element.getAttributeValue("gen_arc_index",
"true").equals("true"));
> > +
>
tb.setGenerateEntryPages(element.getAttributeValue("gen_entries",
"false").equals("true"));
> > +
> > + tb.setLocale(createLocale(element.getAttributeValue("locale",
> Locale.getDefault().toString())));
> > +
>
tb.setPublishAll(element.getAttributeValue("publish_all",
"true").equals("true"));
> > + tb.setType(element.getAttributeValue("type").toString());
> > +
> > + int arcPolicy = TBWeblog.ARCHIVE_MONTHLY;
> > + int dayInterval = 5;
> > + Date arcBaseDate = new Date(0);
> > + try {
> > + arcPolicy = Integer.parseInt(
> > + element.getAttributeValue("arc_policy",
> Integer.toString(TBWeblog.ARCHIVE_MONTHLY)));
> > + dayInterval =
> Integer.parseInt(element.getAttributeValue("day_interval", "5"));
> > + long time =
> Long.parseLong(element.getAttributeValue("base_date"));
> > + arcBaseDate = new Date(time);
> > + } catch(Exception ex){}
> > + tb.setArchivePolicy(arcPolicy);
> > + tb.setArchiveByDayInterval(dayInterval);
> > + tb.setArchiveBaseDate(arcBaseDate);
> > +
> > + //load outdated archives from xml
> > + Element outdatedArcs = element.getChild("OutdatedArchives");
> > + if(outdatedArcs != null) {
> > + Iterator itr = (outdatedArcs.getChildren()).iterator();
> > + while(itr.hasNext()) {
> > + Date start = new Date();
> > + Date exp = new Date();
> > + Element e = (Element)itr.next();
> > + if(e.getName().equals("Archive")) {
> > + try {
> > + long d1 =
> Long.parseLong(e.getAttributeValue("start"));
> > + long d2 =
> Long.parseLong(e.getAttributeValue("end"));
> > + start.setTime(d1);
> > + exp.setTime(d2);
> > + tb.addOutdatedArchive(new ArchiveRange(start,
> exp));
> > + } catch(Exception ex){}
> > + }
> > + }
> > + }
> > +
> > + //load outdated cats from xml
> > + Element outdatedCats = element.getChild("OutdatedCategories");
> > + if(outdatedCats != null) {
> > + Iterator itr = (outdatedCats.getChildren()).iterator();
> > + while(itr.hasNext()) {
> > + Element e = (Element)itr.next();
> > + if(e.getName().equals("Category")) {
> > + tb.addOutdatedCategory(e.getText());
> > + }
> > + }
> > + }
> > +
> > + //load outdated entries from xml
> > + Element outdatedEnts = element.getChild("OutdatedEntries");
> > + if(outdatedEnts != null) {
> > + Iterator itr = (outdatedEnts.getChildren()).iterator();
> > + while(itr.hasNext()) {
> > + Element e = (Element)itr.next();
> > + if(e.getName().equals("Entry")) {
> > + try{
> > + long id = Long.parseLong(e.getText());
> > + tb.addOutdatedEntryID(new Long(id));
> > + }catch(Exception ex){}
> > + }
> > + }
> > + }
> > +
> > + loadGeneratorSettingsFromXML(tb, element);
> > + return tb;
> > + }
> >
> > - private static void loadEmailSettingsFromXML(Element parent, Weblog
> blog)
> > - {
> > + private static void loadGeneratorSettingsFromXML(TBWeblog tbw,
Element
> element) {
> > + //set up the page generator defaults
> > + PageGenerator gen = tbw.getPageGenerator();
> > + Element genElement = element.getChild("Generator");
> > + if(genElement == null)
> > + return;
> > +
> > + gen.setCharset(genElement.getAttributeValue("charset", "UTF-8"));
> > + gen.setDateFormat(genElement.getAttributeValue("date_format"));
> > + gen.setTimeFormat(genElement.getAttributeValue("time_format"));
> > + String s = genElement.getAttributeValue("span_range");
> > + boolean span = s != null && s.equals("true");
> > +
> gen.setArchiveRangeFormat(genElement.getAttributeValue("range_format"),
> span);
> > + s = genElement.getAttributeValue("front_asc");
> > + gen.setFrontPageAscending(s != null && s.equals("true"));
> > + s = genElement.getAttributeValue("arc_asc");
> > + gen.setArchivePageAscending(s != null && s.equals("true"));
> > + s = genElement.getAttributeValue("cat_asc");
> > + gen.setCategoryPageAscending(s != null && s.equals("true"));
> > +
> > + int fpLimit = 10;
> > + int catLimit = 20;
> > + try {
> > + fpLimit =
> Integer.parseInt(genElement.getAttributeValue("front_page_limit"));
> > + catLimit =
> Integer.parseInt(genElement.getAttributeValue("cat_page_limit"));
> > + } catch(Exception ex){}
> > +
> > +
>
gen.setLimitFrontPage(genElement.getAttributeValue("limit_front",
"true").equals("true"));
> > + gen.setFrontPageLimit(fpLimit);
> > +
>
gen.setLimitCategoryPage(genElement.getAttributeValue("limit_cat",
"true").equals("true"));
> > + gen.setCategoryPageLimit(catLimit);
> > + s = genElement.getAttributeValue("limit_rss_body");
> > + gen.setLimitRssEntry(s != null && s.equals("true"));
> > +
> > + Element custTags = genElement.getChild("CustomTags");
> > + if(custTags == null)return;
> > + Iterator itr = custTags.getChildren().iterator();
> > + while(itr.hasNext()) {
> > + Element e = (Element)itr.next();
> > + if(e.getName().equals("Tag")) {
> > + String name = e.getAttributeValue("name");
> > + if(name == null)
> > + continue;
> > + String value = e.getText();
> > + CustomTag tag = new CustomTag(name, value);
> > + gen.addCustomTag(tag);
> > + }
> > + }
> > + }
> > +
> > +
> > +
> > + private static void loadPingServicesFromXML(Element parent, Weblog
> blog) {
> > + Element services = parent.getChild("PingServices");
> > + if(services == null)
> > + services = new Element("PingServices");
> > +
> > + Iterator itr = (services.getChildren()).iterator();
> > + while(itr.hasNext()) {
> > + Element service = (Element)itr.next();
> > + if(service.getName().equals("WeblogsDotComPing")) {
> > + WeblogsDotComPing ping = new WeblogsDotComPing();
> > + ping.setServiceUrl(service.getAttributeValue("url"));
> > + ping.setServiceName(service.getAttributeValue("name"));
> > +
>
ping.setEnabled(service.getAttributeValue("enabled", "true").equals("true"));
> > + blog.addPingService(ping);
> > + }
> > + }
> > + }
> > +
> > + private static void loadEmailSettingsFromXML(Element parent, Weblog
> blog) {
> > Element mailSettings = parent.getChild("MailSettings");
> > if(mailSettings == null)
> > return;
> > @@ -762,126 +694,102 @@
> > configureRemoteTransport(blog.getMailTransport(), transport,
110);
> > }
> >
> > - private static int parseInt(String intStr, int defaultVal)
> > - {
> > - try
> > - {
> > + private static int parseInt(String intStr, int defaultVal) {
> > + try {
> > defaultVal = Integer.parseInt(intStr);
> > - }
> > - catch(Exception ex){}
> > + } catch(Exception ex){}
> >
> > return defaultVal;
> > }
> >
> > - private static Date parseDate(String epocString)
> > - {
> > + private static Date parseDate(String epocString) {
> > long d = 0;
> > - try
> > - {
> > + try {
> > d = Long.parseLong(epocString);
> > - }
> > - catch(Exception ex){}
> > + } catch(Exception ex){}
> >
> > return new Date(d);
> > }
> > -
> > - private static Locale createLocale(String str)
> > - {
> > - Vector v = new Vector();
> > - if(str != null)
> > - {
> > - StringTokenizer st = new StringTokenizer(str, "_");
> > - while (st.hasMoreTokens())
> > - {
> > - v.add(st.nextToken());
> > - }
> > - }
> > -
> > - Locale loc = Locale.getDefault();
> > - if(v.size() == 3)
> > - loc = new Locale(v.elementAt(0).toString(),
> > - v.elementAt(1).toString(),
> > v.elementAt(2).toString());
> > - else if(v.size() == 2)
> > - loc = new Locale(v.elementAt(0).toString(),
> > - v.elementAt(1).toString());
> > - else if(v.size() == 1)
> > - loc = new Locale(v.elementAt(0).toString());
> > -
> > - return loc;
> > - }
> > -
> > - private static PublishTransport loadPublishTransportFromXML(Element
> parent)
> > - {
> > - Element transport = parent.getChild("Transport");
> > - if(transport == null)
> > - transport = new Element("Transport");
> > - PublishTransport pubTransport = null;
> > - String type = transport.getAttributeValue("type", "local");
> > -
> > - if(type.equals("ftp") || type.equals("sftp"))
> > - {
> > - RemotePublishTransport rtp = null;
> > - int port = 22;
> > - if(type.equals("ftp"))
> > - {
> > - FTPTransport ftp = new FTPTransport();
> > -
>
ftp.setPassiveMode(transport.getAttributeValue("passive",
"true").equals("true"));
> > - Element asciiElem =
> > transport.getChild("ASCIITypes");
> > +
> > + private static Locale createLocale(String str) {
> > + Vector v = new Vector();
> > + if(str != null) {
> > + StringTokenizer st = new StringTokenizer(str, "_");
> > + while (st.hasMoreTokens()) {
> > + v.add(st.nextToken());
> > + }
> > + }
> > +
> > + Locale loc = Locale.getDefault();
> > + if(v.size() == 3)
> > + loc = new Locale(v.elementAt(0).toString(),
> > + v.elementAt(1).toString(),
v.elementAt(2).toString());
> > + else if(v.size() == 2)
> > + loc = new Locale(v.elementAt(0).toString(),
> > + v.elementAt(1).toString());
> > + else if(v.size() == 1)
> > + loc = new Locale(v.elementAt(0).toString());
> > +
> > + return loc;
> > + }
> > +
> > + private static PublishTransport loadPublishTransportFromXML(Element
> parent) {
> > + Element transport = parent.getChild("Transport");
> > + if(transport == null)
> > + transport = new Element("Transport");
> > + PublishTransport pubTransport = null;
> > + String type = transport.getAttributeValue("type", "local");
> > +
> > + if(type.equals("ftp") || type.equals("sftp")) {
> > + RemotePublishTransport rtp = null;
> > + int port = 22;
> > + if(type.equals("ftp")) {
> > + FTPTransport ftp = new FTPTransport();
> > +
>
ftp.setPassiveMode(transport.getAttributeValue("passive",
"true").equals("true"));
> > + Element asciiElem = transport.getChild("ASCIITypes");
> > ArrayList lst = new ArrayList();
> > - if(asciiElem == null)
> > - {
> > + if(asciiElem == null) {
> > lst.add("cgi");
> > lst.add("pl");
> > lst.add("php");
> > - lst.add("asp");
> > - }
> > - else
> > - {
> > + lst.add("asp");
> > + } else {
> > List ch = asciiElem.getChildren();
> > - for(int i = 0; i < ch.size(); i++)
> > - {
> > + for(int i = 0; i < ch.size(); i++) {
> > Element e = (Element)ch.get(i);
> > if(e.getName() == "ext");
> > - lst.add(e.getText());
> > + lst.add(e.getText());
> > }
> >
> > }
> > ftp.setASCIIExtentions(lst);
> > rtp = ftp;
> > - port = 21;
> > - }
> > - else
> > - rtp = new SFTPTransport();
> > -
> > - configureRemoteTransport(rtp, transport, port);
> > - pubTransport = rtp;
> > - }
> > - else
> > - pubTransport = new LocalTransport();
> > -
> > - return pubTransport;
> > - }
> > + port = 21;
> > + } else
> > + rtp = new SFTPTransport();
> > +
> > + configureRemoteTransport(rtp, transport, port);
> > + pubTransport = rtp;
> > + } else
> > + pubTransport = new LocalTransport();
> > +
> > + return pubTransport;
> > + }
> >
> > - private static void configureRemoteTransport(RemoteTransport rtp,
> Element transport, int defaultPort)
> > - {
> > - try
> > - {
> > + private static void configureRemoteTransport(RemoteTransport rtp,
> Element transport, int defaultPort) {
> > + try {
> > defaultPort =
> Integer.parseInt(transport.getAttributeValue("port"));
> > }catch(Exception ex){}
> >
> > - rtp.setPort(defaultPort);
> > + rtp.setPort(defaultPort);
> > rtp.setAddress(transport.getAttributeValue("server"));
> > rtp.setUserName(transport.getAttributeValue("user"));
> > - String password = transport.getAttributeValue("password");
> >
> > + String password = transport.getAttributeValue("password");
> > rtp.setSavePassword(password != null);
> > - if(rtp.isSavePassword())
> > - {
> > - try
> > - {
> > + if(rtp.isSavePassword()) {
> > + try {
> > password = PasswordUtil.decrypt(password,
> PasswordUtil.KEY);
> > - }
> > - catch(Exception ex)
> > - {
> > + } catch(Exception ex) {
> > password = "";
> > }
> > rtp.setPassword(password);
> >
> > _______________________________________________
> > cvs mailing list
> > cvs at freenetproject.org
> > http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >
> >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20080208/4d04b540/attachment.pgp>