|
From: Gerry D. <gd...@us...> - 2002-06-11 15:50:08
|
Update of /cvsroot/swapdv/swapdv/Scheduler/actions
In directory usw-pr-cvs1:/tmp/cvs-serv29659/Scheduler/actions
Modified Files:
copyShowAction.java deleteShowAction.java
deleteShowEditor.form deleteShowEditor.java
Log Message:
Changed all println()'s over the Logger.logs, added --debug switch and initial deleteShowActions
Index: copyShowAction.java
===================================================================
RCS file: /cvsroot/swapdv/swapdv/Scheduler/actions/copyShowAction.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- copyShowAction.java 8 Jun 2002 21:29:05 -0000 1.11
+++ copyShowAction.java 11 Jun 2002 15:50:04 -0000 1.12
@@ -151,7 +151,7 @@
// Match each possible component
if (!isMatchingPattern(sourceCategory, theHeader.getCategory(theGuide.getChannel(theShow.created).category))) return false;
- if (!isMatchingPattern(sourceReplayChannel,theGuide.getChannel(theShow.created).getShowLabel())) return false;
+ if (!isMatchingPattern(sourceReplayChannel,theGuide.getChannel(theShow.created).getChannelLabel())) return false;
if (!isMatchingPattern(sourceTVChannel, theShow.getChannelName())) return false;
if (!isMatchingPattern(sourceShowTitle, showDesc.getShowTitle())) return false;
if (!isMatchingPattern(sourceEpisodeTitle, showDesc.getEpisodeTitle())) return false;
Index: deleteShowAction.java
===================================================================
RCS file: /cvsroot/swapdv/swapdv/Scheduler/actions/deleteShowAction.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- deleteShowAction.java 3 Jun 2002 23:03:04 -0000 1.5
+++ deleteShowAction.java 11 Jun 2002 15:50:04 -0000 1.6
@@ -35,54 +35,272 @@
import swapdv.Scheduler.*;
import swapdv.Persistance.*;
+import java.util.*;
+import java.io.*;
+import swapdv.ReplayClient.*;
+import swapdv.ReplayGuide.*;
+import javax.swing.*;
+import swapdv.Logger.*;
/**
*
* @author gerry
*
* - Ability to delete program by matching channel name
+ * - Ability to delete program by matching category name
+ * - Ability to delete program if it exists on this SwapDV
+ * - Ability to delete a program that is more than X days old
* - Ability to delete program by matching program name and/or description
- * - Ability to delete program by checking +/- days since recorded
*
*
*/
public class deleteShowAction extends abstractAction {
+ public String deleteDeviceName = ""; /* i.e. media room */
+ public String deleteCategory = ""; /* i.e. general stuff */
+ public String deleteReplayChannel = ""; /* i.e. Simpsons */
+ public String deleteTVChannel = ""; /* i.e. WGN */
+ public String deleteShowTitle = ""; /* i.e. The Simpsons */
+ public String deleteEpisodeTitle = ""; /* i.e. Monorail */
+ public String deleteEpisodeDescription = ""; /* i.e. Springfield gets a Monorail */
+
+ public boolean deleteDuplicates = true; /* i.e. deleteif matching show title & episode */
+ public boolean dupCheckShowTitle = true;
+ public boolean dupCheckEpisode = true;
+ public boolean dupCheckDescription = false;
+ public int deleteOlderThanDays = -1; /* Delete if older than, 0 = now, -1 = disabled */
- /** Creates a new instance of deleteShowAction */
public deleteShowAction() {
super("Delete Show");
}
- /** that caused us to run. */
- public void doAction(schdEventI theSchdEvent) {
+ public boolean restoreFromPStore(pStoreNodeI store, pStoreManager storeManager) {
+ actionDescription = store.getAttribute("actionDescription");
+ actionEnabled = store.getBoolAttribute("actionEnabled");
+
+ deleteDeviceName = store.getAttribute("deleteDeviceName", "10.0.10.1");
+ deleteCategory = store.getAttribute("deleteCategory");
+ deleteReplayChannel = store.getAttribute("deleteReplayChannel");
+ deleteTVChannel = store.getAttribute("deleteTVChannel");
+ deleteShowTitle = store.getAttribute("deleteShowTitle");
+ deleteEpisodeTitle = store.getAttribute("deleteEpisodeTitle");
+ deleteEpisodeDescription = store.getAttribute("deleteEpisodeDescription");
+
+ deleteDuplicates = store.getBoolAttribute("deleteDuplicates", true);
+ dupCheckShowTitle = store.getBoolAttribute("dupCheckTitle", true);
+ dupCheckEpisode = store.getBoolAttribute("dupCheckEpisode", true);
+ dupCheckDescription = store.getBoolAttribute("dupCheckDescription", false);
+
+ deleteOlderThanDays = store.getIntAttribute("deleteOlderThanDays", -1);
+ return true;
+ }
+
+ public boolean saveToPStore(pStoreNodeI store, pStoreManager storeManager) {
+ store.setAttribute("actionDescription", actionDescription);
+ store.setAttribute("actionEnabled", actionEnabled);
+
+ store.setAttribute("deleteDeviceName", deleteDeviceName);
+ store.setAttribute("deleteCategory", deleteCategory);
+ store.setAttribute("deleteReplayChannel", deleteReplayChannel);
+ store.setAttribute("deleteTVChannel", deleteTVChannel);
+ store.setAttribute("deleteShowTitle", deleteShowTitle);
+ store.setAttribute("deleteEpisodeTitle", deleteEpisodeTitle);
+ store.setAttribute("deleteEpisodeDescription", deleteEpisodeDescription);
+
+ store.setAttribute("deleteDuplicates", deleteDuplicates);
+ store.setAttribute("dupCheckTitle", dupCheckShowTitle);
+ store.setAttribute("dupCheckEpisode", dupCheckEpisode);
+ store.setAttribute("dupCheckDescription", dupCheckDescription);
+ store.setAttribute("deleteOlderThanDays", deleteOlderThanDays);
+
+ return true;
+ }
+
+ // Apply the passed pattern to the passed target and if they
+ // match return true.
+ public boolean isMatchingPattern(String thePattern, String theTarget) {
+ // If the pattern is empty, everything matches
+ if (thePattern.equals("")) return true;
+
+ // Convert strings to upper case (for case insensitive matches)
+ thePattern = thePattern.trim().toUpperCase();
+ theTarget = theTarget.trim().toUpperCase();
+
+ // Break things up
+ StringTokenizer patternTokens = new StringTokenizer(thePattern);
+ String theToken = null;
+ while (patternTokens.hasMoreTokens()) {
+ // Get the token, clean it up. If blank, ignore it
+ theToken = patternTokens.nextToken().trim();
+ if (theToken.equals("")) continue;
+
+ // See if we can find this in the target
+ if (theTarget.indexOf(theToken) == -1) return false;
+ }
+
+ // If we got here, we got through it and we matched
+ return true;
+ }
+
+ // Determine if the passed show matches our selectives
+ public boolean isMatchingShow(ReplayClient theClient, Guide theGuide, Show theShow) {
+ Description showDesc = theShow.getDescription();
+ Header theHeader = theGuide.header;
+
+ // Match each possible component
+ if (!isMatchingPattern(deleteCategory, theHeader.getCategory(theGuide.getChannel(theShow.created).category))) return false;
+ if (!isMatchingPattern(deleteReplayChannel, theGuide.getChannel(theShow.created).getShowLabel())) return false;
+ if (!isMatchingPattern(deleteTVChannel, theShow.getChannelName())) return false;
+ if (!isMatchingPattern(deleteShowTitle, showDesc.getShowTitle())) return false;
+ if (!isMatchingPattern(deleteEpisodeTitle, showDesc.getEpisodeTitle())) return false;
+ if (!isMatchingPattern(deleteEpisodeDescription, showDesc.getShowDescription())) return false;
+
+ // See if it's old enough
+ if (deleteOlderThanDays > 0) {
+ int daysOld = (int) ((new Date().getTime() / 1000) - theShow.recorded) / (60 * 60 * 24);
+ Logger.log(0, LoggerI.LEVEL_DEBUG, "Testing show " + showDesc.getShowTitle() + ", Episode " + showDesc.getEpisodeTitle() + ", " + daysOld + " days old");
+ if (daysOld <= deleteOlderThanDays) return false;
+ }
+
+ return true;
}
- /** Restore the previously saved state of this object from the pStore
- * It's best if the pStoreNodeI has nothing else stored in it but
- * this object (and any descendent object of this object). The name of the
- * child should be unique and repeatable (so subsequent save/restore cycles will
- * always use the same information in the pStore)
- * @param restoreFromNode pStoreNodeI to restore this objects state from.
- * @return returns true if the objects state was properly restored and false if there was
- * a problem preventing the objects restoration. Note that if this returns false,
- * the object is considered in an undefined state and should not be used.
- */
- public boolean restoreFromPStore(pStoreNodeI restoreFromNode, pStoreManager storeManager) {
+ private boolean isQueuedImport(ReplayClient theClient, Guide theGuide, Show theShow) {
+ Enumeration importList = swapdv.SwapDV.getSwapDV().getCurrentImports().elements();
+ Description showDesc = theShow.getDescription();
+ Description importShowDesc = null;
+ swapdv.ImportInfo theImport = null;
+ Show importShow = null;
+ boolean titleIsDup = false;
+ boolean episodeIsDup = false;
+ boolean descriptionIsDup = false;
+
+ while (importList.hasMoreElements()) {
+ theImport = (swapdv.ImportInfo) importList.nextElement();
+ if ((importShow = theImport.theShow) == null) continue;
+ importShowDesc = importShow.getDescription();
+
+ // Setup duplicate flags
+ titleIsDup = showDesc.getShowTitle().equalsIgnoreCase(importShowDesc.getShowTitle());
+ episodeIsDup = showDesc.getEpisodeTitle().equalsIgnoreCase(importShowDesc.getEpisodeTitle());
+ descriptionIsDup = showDesc.getShowDescription().equalsIgnoreCase(importShowDesc.getShowDescription());
+
+ // We only consider a dup if everything matches (unlike actual guide based duplicate checks)
+ if (titleIsDup && episodeIsDup && descriptionIsDup) {
+ Logger.log(0, LoggerI.LEVEL_INFO, "SCHD::DELETE_SHOWS: Skipping queued for import show " + showDesc.getShowTitle() + ", Episode " + showDesc.getEpisodeTitle());
+ return true;
+ }
+ }
+
+ // No dups found
return false;
}
- /** Store this objects state into the pStore with the passed node. It's best if
- * the pStoreNodeI has nothing else stored in it but this object (and any
- * descendent object of this object). The name of the child should be unique and
- * repeatable (so subsequent save/restore cycles will always use the same
- * information in the pStore)
- * @param storeToNode pStoreNodeI to save this object to. There should be no other children or other
- * attributes stored in this node besides those set in place by the object.
- * @return true if the objects state was successfully preserved, false if there was
- * an error. If false is returned, the object should not be considered saved
- * and the pStore representation of this object should be considered invalid.
- */
- public boolean saveToPStore(pStoreNodeI storeToNode, pStoreManager storeManager) {
+ private boolean isDuplicateShow(ReplayClient theClient, Guide theGuide, Show theShow) {
+ PublicPrivateGuide localGuide = actionUtils.getLocalGuide();
+ Description showDesc = theShow.getDescription();
+ Description localShowDesc = null;
+ Show localShow = null;
+ boolean titleIsDup = false;
+ boolean episodeIsDup = false;
+ boolean descriptionIsDup = false;
+
+ Enumeration showList = localGuide.shows.elements();
+ while (showList.hasMoreElements()) {
+ localShow = (Show) showList.nextElement();
+ localShowDesc = localShow.getDescription();
+
+ // Setup duplicate flags
+ titleIsDup = showDesc.getShowTitle().equalsIgnoreCase(localShowDesc.getShowTitle());
+ episodeIsDup = showDesc.getEpisodeTitle().equalsIgnoreCase(localShowDesc.getEpisodeTitle());
+ descriptionIsDup = showDesc.getShowDescription().equalsIgnoreCase(localShowDesc.getShowDescription());
+
+ // A show is a duplicate if each selected item is true. If
+ // any selected is false, the show is "unique"
+ if ((!dupCheckShowTitle || (dupCheckShowTitle && titleIsDup))
+ && (!dupCheckEpisode || (dupCheckEpisode && episodeIsDup))
+ && (!dupCheckDescription || (dupCheckDescription && descriptionIsDup))) {
+ Logger.log(0, LoggerI.LEVEL_INFO, "SCHD::DELETE_SHOWS: Selecting duplicate/existing show " + showDesc.getShowTitle() + ", Episode " + showDesc.getEpisodeTitle());
+ return true;
+ }
+ }
+
+ // If we made it all the way, this is "unique"
return false;
+ }
+
+ private boolean deleteShow(ReplayClient theClient, Guide theGuide, Show theShow) {
+ Description theShowDesc = theShow.getDescription();
+ int showID = theShow.recorded;
+
+ // Delete the show
+ /*
+ if (!theClient.deleteShow(theShow)) {
+ Logger.log(0, LoggerI.LEVEL_ERR, "SCHD::DELETE_SHOWS: Unable to delete show " + theShowDesc.getShowTitle() + ", Episode " + theShowDesc.getEpisodeTitle() + " from " + theClient.name);
+ return false;
+ } else */
+ Logger.log(0, LoggerI.LEVEL_INFO, "SCHD::DELETE_SHOWS: Deleted show " + theShowDesc.getShowTitle() + ", Episode " + theShowDesc.getEpisodeTitle() + " from " + theClient.name);
+
+ return true;
+ }
+
+ /** that caused us to run. */
+ public void doAction(schdEventI theSchdEvent) {
+ ReplayClient theClient = null;
+ Show theShow = null;
+ Guide theGuide = null;
+ JMenu deviceMenu = actionUtils.getDeviceMenu();
+ int deviceCount = deviceMenu.getItemCount();
+ String menuLabel = null;
+ String deviceName = null;
+ String deviceAddr = null;
+ int devicePort = 0;
+ int deleteCount = 0;
+
+ // Iterate over each known device for match checking
+ for (int deviceIndex = 0; deviceIndex < deviceCount; deviceIndex++) {
+ // Parse this device
+ try {
+ menuLabel = deviceMenu.getItem(deviceIndex).getText();
+ deviceName = menuLabel.substring(0, menuLabel.indexOf("(") - 1).trim();
+ deviceAddr = menuLabel.substring(menuLabel.indexOf("(") + 1, menuLabel.indexOf(":"));
+ devicePort = Integer.parseInt(menuLabel.substring(menuLabel.indexOf(":") + 1, menuLabel.indexOf(")")));
+ } catch (Exception parseError) { continue; }
+
+ // See of this device name matches our device spec
+ if (!isMatchingPattern(deleteDeviceName, deviceName)) continue;
+
+ // Fetch the guide
+ try {
+ if ((theClient = ReplayClient.getReplayClient(deviceAddr, devicePort)) == null) {
+ Logger.log(0, LoggerI.LEVEL_WARN, "SCHD::DELETE_SHOWS: Action for event " + theSchdEvent + " could not fetch client for " + deviceName + " - device skipped");
+ continue;
+ }
+ if ((theGuide = theClient.getGuide()) == null) {
+ Logger.log(0, LoggerI.LEVEL_WARN, "SCHD::DELETE_SHOWS: Action for event " + theSchdEvent + " could not fetch content guide for " + deviceName + " - device skipped");
+ continue;
+ }
+ } catch (IOException ioErr) {
+ Logger.log(0, LoggerI.LEVEL_ERR, "SCHD::DELETE_SHOWS: Action for event " + theSchdEvent + " got an error access device " + deviceName + " - device skipped");
+ continue;
+ }
+
+ // Iterate over each show in the guide, checking for matches
+ Enumeration showList = theGuide.shows.elements();
+ while (showList.hasMoreElements()) {
+ theShow = (Show) showList.nextElement();
+
+ // See if this show matches our filters
+ if (!isMatchingShow(theClient, theGuide, theShow)) continue;
+
+ // See if this show is a duplicate
+ if (deleteDuplicates && !isDuplicateShow(theClient, theGuide, theShow)) continue;
+
+ // See if show is queued
+ if (isQueuedImport(theClient, theGuide, theShow)) continue;
+
+ // Delete this show
+ if (deleteShow(theClient, theGuide, theShow)) deleteCount++;
+ }
+ }
}
}
Index: deleteShowEditor.form
===================================================================
RCS file: /cvsroot/swapdv/swapdv/Scheduler/actions/deleteShowEditor.form,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- deleteShowEditor.form 1 Jun 2002 18:43:19 -0000 1.1
+++ deleteShowEditor.form 11 Jun 2002 15:50:04 -0000 1.2
@@ -1,9 +1,719 @@
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.1">
+ <NonVisualComponents>
+ <Component class="javax.swing.ButtonGroup" name="titleButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="episodeButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="descriptionButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="deviceButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="categoryButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="themeButtonGroup">
+ </Component>
+ <Component class="javax.swing.ButtonGroup" name="tvChannelButtonGroup">
+ </Component>
+ </NonVisualComponents>
<SyntheticProperties>
- <SyntheticProperty name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
+ <SyntheticProperty name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,26,0,0,3,16"/>
</SyntheticProperties>
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="basicsChannel">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+ <JTabbedPaneConstraints tabName="Show To Delete">
+ <Property name="tabTitle" type="java.lang.String" value="Show To Delete"/>
+ </JTabbedPaneConstraints>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="showTitlePanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select Shows to Delete by Shows Title"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingShowTitles">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Delete only shows whose title matches"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="titleButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingShowTitlesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllShowTitles">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Don't consider show titles"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="titleButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllShowTitlesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="showTitlePattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="episodePanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select Shows To Delete by Episode Title"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="2" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingEpisodes">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Delete only shows with episodes matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="episodeButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingEpisodesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllEpisodes">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Don't consider episode titles"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="episodeButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllEpisodesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="episodePattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="descriptionPanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select Shows to Delete by Episode Description"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="3" gridWidth="3" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="8" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="18" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingDescriptions">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Delete only shows with descriptions matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="descriptionButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingDescriptionsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllDescriptions">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Don't consider episode descriptions"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="descriptionButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllDescriptionsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="descriptionPattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Actions Controls"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JCheckBox" name="actionEnabledCheckBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Enabled?"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="descLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Description"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="20" insetsBottom="0" insetsRight="0" anchor="13" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="actionDescription">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="agePanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select Shows to Delete by Age"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="4" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="18" weightX="1.0" weightY="1.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JCheckBox" name="deleteByAgeCheckBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Delete only shows older than"/>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="deleteByAgeCheckBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="17" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="deleteShowAge">
+ <Properties>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[64, 21]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[64, 21]"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="0" insetsBottom="4" insetsRight="4" anchor="17" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="days"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="2" gridY="0" gridWidth="1" gridHeight="1" fill="0" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="advancedPanel">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
+ <JTabbedPaneConstraints tabName="Advanced Deletion Selection">
+ <Property name="tabTitle" type="java.lang.String" value="Advanced Deletion Selection"/>
+ </JTabbedPaneConstraints>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="devicePanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select and Delete Shows from ReplayTV Device"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingDevices">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Scan only ReplayTVs matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="deviceButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingDevicesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllDevices">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Scan All Known ReplayTVs"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="deviceButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllDevicesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="devicePattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="categoryPanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select and Delete Shows Filed under Replay Category/Folder"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingCategories">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Scan only categories matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="categoryButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingCategoriesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllCategories">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Scan All Categories"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="categoryButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllCategoriesActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="categoryPattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="tvChannelPanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select and Delete Shows recorded from TV Channel Name"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="3" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="18" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingTVChannels">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Delete shows recorded on TV channels matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="tvChannelButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingTVChannelsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllTVChannels">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Don't consider shows TV Channel"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="tvChannelButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllTVChannelsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="tvChannelPattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="replayChannelPanel">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Select and Delete Shows in Replay Channel/Theme"/>
+ </Border>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="2" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="1.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JRadioButton" name="scanMatchingReplayChannels">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Scan only Replay Channels matching"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="themeButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanMatchingReplayChannelsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="1" gridWidth="1" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="0" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="scanAllReplayChannels">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
+ <Font name="Dialog" size="12" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="Scan all Replay Channels"/>
+ <Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
+ <ComponentRef name="themeButtonGroup"/>
+ </Property>
+ </Properties>
+
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="scanAllReplayChannelsActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="0" gridY="0" gridWidth="2" gridHeight="1" fill="1" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="0" insetsRight="4" anchor="10" weightX="0.0" weightY="0.0"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="replayChannelPattern">
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout" value="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout$GridBagConstraintsDescription">
+ <GridBagConstraints gridX="1" gridY="1" gridWidth="1" gridHeight="1" fill="2" ipadX="0" ipadY="0" insetsTop="4" insetsLeft="4" insetsBottom="4" insetsRight="4" anchor="17" weightX="1.0" weightY="0.0"/>
+ ...
[truncated message content] |