1 /* 2 * FreeGuide J2 3 * 4 * Copyright (c) 2001-2004 by Andy Balaam and the FreeGuide contributors 5 * 6 * freeguide-tv.sourceforge.net 7 * 8 * Released under the GNU General Public License 9 * with ABSOLUTELY NO WARRANTY. 10 * 11 * See the file COPYING for more information. 12 */ 13 package freeguide.common.gui; 14 15 import freeguide.common.lib.fgspecific.Application; 16 import freeguide.common.lib.fgspecific.data.TVChannelsSet; 17 import freeguide.common.lib.fgspecific.selection.Favourite; 18 import freeguide.common.lib.general.StringHelper; 19 import freeguide.common.lib.general.Time; 20 import freeguide.common.lib.general.Utils; 21 22 import java.text.SimpleDateFormat; 23 24 import java.util.Calendar; 25 import java.util.GregorianCalendar; 26 import java.util.Iterator; 27 import java.util.Map; 28 import java.util.TreeMap; 29 import java.util.logging.Level; 30 31 import javax.swing.JDialog; 32 import javax.swing.JOptionPane; 33 34 /* 35 * FreeGuideFavouriteEditor 36 * 37 * A screen for editing a single favourite. 38 * 39 * @author Brendan Corrigan (based on FreeGuideFavouriteEditor by Andy 40 * Balaam) 41 * @created 22nd August 2003 42 * @version 2 43 */ 44 /** 45 * DOCUMENT ME! 46 * 47 * @author $author$ 48 * @version $Revision$ 49 */ 50 public class FavouriteEditorDialog extends FGDialog 51 { 52 protected static final String SPACE_RE_FROM = "\\s+"; 53 protected static final String SPACE_RE_TO = " "; 54 private final static SimpleDateFormat dayOfWeekFormat = 55 new SimpleDateFormat( "EEEE" ); 56 private javax.swing.JButton butCancel; 57 private javax.swing.JButton butOK; 58 private javax.swing.JComboBox cmbChannel; 59 private Map channels = new TreeMap( ); 60 private javax.swing.JComboBox cmbDayOfWeek; 61 private javax.swing.JComboBox cmbTitle; 62 private javax.swing.JLabel labAfter; 63 private javax.swing.JLabel labBefore; 64 private javax.swing.JLabel labBlankFields; 65 private javax.swing.JLabel labChannel; 66 private javax.swing.JLabel labDayOfWeek; 67 private javax.swing.JLabel labName; 68 private javax.swing.JLabel labTimeFormat; 69 private javax.swing.JLabel labDescription; 70 private javax.swing.JLabel labSearchDescriptionAndCredits; 71 72 // private javax.swing.JLabel labTimeFormat1; 73 private javax.swing.JLabel labTitle; 74 private javax.swing.JTextField txtDescriptionContains; 75 private javax.swing.JPanel jPanel1; 76 private javax.swing.JTextField txtAfter; 77 private javax.swing.JTextField txtBefore; 78 private javax.swing.JTextField txtName; 79 private javax.swing.JTextField txtTitle; 80 Favourite favourite; 81 82 /** 83 * Constructor which sets the favourites editor up as a JDialog... 84 * 85 * @param owner - the <code>JFrame</code> from which the dialog is 86 * displayed 87 * @param title - the <code>String</code> to display in the dialog's title 88 * bar 89 * @param favourite - the <code>Favourite</code> to modify 90 * @param allChannelsSet DOCUMENT ME! 91 */ FavouriteEditorDialog( JDialog owner, String title, Favourite favourite, TVChannelsSet allChannelsSet )92 public FavouriteEditorDialog( 93 JDialog owner, String title, Favourite favourite, 94 TVChannelsSet allChannelsSet ) 95 { 96 super( owner, title ); 97 this.favourite = favourite; 98 initComponents( ); 99 Utils.centreDialog( owner, this ); 100 fillLists( allChannelsSet ); 101 getDetails( ); 102 addActionListeners( ); 103 } 104 105 /** 106 * Gets the details from the favourite and fills in the UI 107 * elements 108 */ getDetails( )109 private void getDetails( ) 110 { 111 if( favourite.getTitleString( ) != null ) 112 { 113 txtTitle.setText( favourite.getTitleString( ) ); 114 cmbTitle.setSelectedItem( 115 Application.getInstance( ).getLocalizedMessage( "exactly" ) ); 116 } 117 else if( favourite.getTitleContains( ) != null ) 118 { 119 txtTitle.setText( favourite.getTitleContains( ) ); 120 cmbTitle.setSelectedItem( 121 Application.getInstance( ).getLocalizedMessage( "contains" ) ); 122 } 123 else if( favourite.getTitleRegex( ) != null ) 124 { 125 txtTitle.setText( favourite.getTitleRegex( ) ); 126 cmbTitle.setSelectedItem( 127 Application.getInstance( ) 128 .getLocalizedMessage( "regular_expression" ) ); 129 } 130 131 if( favourite.getDescriptionContains( ) != null ) 132 { 133 txtDescriptionContains.setText( 134 favourite.getDescriptionContains( ) ); 135 } 136 137 if( favourite.getChannelID( ) != null ) 138 { 139 TVChannelsSet.Channel ch = 140 (TVChannelsSet.Channel)channels.get( 141 favourite.getChannelID( ) ); 142 143 if( ch != null ) 144 { 145 cmbChannel.setSelectedItem( ch ); 146 } 147 } 148 149 if( !favourite.getAfterTime( ).isEmpty( ) ) 150 { 151 txtAfter.setText( favourite.getAfterTime( ).getHHMMString( ) ); 152 } 153 154 if( !favourite.getBeforeTime( ).isEmpty( ) ) 155 { 156 txtBefore.setText( favourite.getBeforeTime( ).getHHMMString( ) ); 157 } 158 159 if( favourite.getDayOfWeek( ) != -1 ) 160 { 161 cmbDayOfWeek.setSelectedIndex( favourite.getDayOfWeek( ) ); 162 } 163 164 calcTxtName( ); 165 } 166 167 /** 168 * Description of the Method 169 * 170 * @param allChannelsSet DOCUMENT ME! 171 */ fillLists( TVChannelsSet allChannelsSet )172 private void fillLists( TVChannelsSet allChannelsSet ) 173 { 174 // The combobox for the title match type 175 cmbTitle.addItem( 176 Application.getInstance( ).getLocalizedMessage( "exactly" ) ); 177 cmbTitle.addItem( 178 Application.getInstance( ).getLocalizedMessage( "contains" ) ); 179 cmbTitle.addItem( 180 Application.getInstance( ) 181 .getLocalizedMessage( "regular_expression" ) ); 182 cmbChannel.addItem( StringHelper.EMPTY_STRING ); 183 184 Iterator it = allChannelsSet.getSortedChannels( ).iterator( ); 185 186 while( it.hasNext( ) ) 187 { 188 TVChannelsSet.Channel ch = (TVChannelsSet.Channel)it.next( ); 189 cmbChannel.addItem( ch ); 190 channels.put( ch.getChannelID( ), ch ); 191 } 192 193 Calendar cal = GregorianCalendar.getInstance( ); 194 cmbDayOfWeek.addItem( StringHelper.EMPTY_STRING ); 195 cal.set( Calendar.DAY_OF_WEEK, Calendar.SUNDAY ); 196 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 197 cal.set( Calendar.DAY_OF_WEEK, Calendar.MONDAY ); 198 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 199 cal.set( Calendar.DAY_OF_WEEK, Calendar.TUESDAY ); 200 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 201 cal.set( Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY ); 202 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 203 cal.set( Calendar.DAY_OF_WEEK, Calendar.THURSDAY ); 204 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 205 cal.set( Calendar.DAY_OF_WEEK, Calendar.FRIDAY ); 206 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 207 cal.set( Calendar.DAY_OF_WEEK, Calendar.SATURDAY ); 208 cmbDayOfWeek.addItem( dayOfWeekFormat.format( cal.getTime( ) ) ); 209 } 210 211 /** 212 * Description of the Method 213 */ updateFavourite( )214 private boolean updateFavourite( ) 215 { 216 boolean setField = false; 217 218 // Calculate the name 219 calcTxtName( ); 220 221 // Set the name 222 favourite.setName( txtName.getText( ) ); 223 224 // Set the title 225 if( 226 cmbTitle.getSelectedItem( ) 227 .equals( 228 Application.getInstance( ).getLocalizedMessage( 229 "exactly" ) ) ) 230 { 231 favourite.setTitleRegex( null ); 232 favourite.setTitleContains( null ); 233 234 String tmp = txtTitle.getText( ); 235 236 if( tmp.equals( StringHelper.EMPTY_STRING ) ) 237 { 238 favourite.setTitleString( null ); 239 } 240 else 241 { 242 favourite.setTitleString( tmp ); 243 setField = true; 244 } 245 } 246 else if( 247 cmbTitle.getSelectedItem( ) 248 .equals( 249 Application.getInstance( ).getLocalizedMessage( 250 "contains" ) ) ) 251 { 252 favourite.setTitleString( null ); 253 favourite.setTitleRegex( null ); 254 255 String tmp = txtTitle.getText( ); 256 257 if( tmp.equals( StringHelper.EMPTY_STRING ) ) 258 { 259 favourite.setTitleContains( null ); 260 } 261 else 262 { 263 favourite.setTitleContains( tmp ); 264 setField = true; 265 } 266 } 267 else 268 { 269 favourite.setTitleString( null ); 270 favourite.setTitleContains( null ); 271 272 String tmp = txtTitle.getText( ); 273 274 if( tmp.equals( StringHelper.EMPTY_STRING ) ) 275 { 276 favourite.setTitleRegex( null ); 277 } 278 else 279 { 280 favourite.setTitleRegex( tmp ); 281 setField = true; 282 } 283 } 284 285 String tmpDescription = txtDescriptionContains.getText( ); 286 if( tmpDescription.equals( StringHelper.EMPTY_STRING ) ) 287 { 288 favourite.setDescriptionContains( null ); 289 } 290 else 291 { 292 favourite.setDescriptionContains( tmpDescription ); 293 setField = true; 294 } 295 296 // Set the channel 297 Object sel = cmbChannel.getSelectedItem( ); 298 299 if( sel instanceof TVChannelsSet.Channel ) 300 { 301 favourite.setChannelID( 302 ( (TVChannelsSet.Channel)sel ).getChannelID( ) ); 303 setField = true; 304 } 305 else 306 { 307 favourite.setChannelID( null ); 308 } 309 310 // Set the after time 311 String tmp = txtAfter.getText( ); 312 313 if( 314 !tmp.equals( StringHelper.EMPTY_STRING ) && ( tmp.length( ) == 5 ) 315 && ( tmp.charAt( 2 ) == ':' ) ) 316 { 317 //String hhmm = tmp.substring(0,2) + tmp.substring(3); 318 favourite.setAfterTime( new Time( tmp ) ); 319 setField = true; 320 } 321 else 322 { 323 favourite.setAfterTime( new Time( ) ); 324 } 325 326 // Set the before time 327 tmp = txtBefore.getText( ); 328 329 if( 330 !tmp.equals( StringHelper.EMPTY_STRING ) && ( tmp.length( ) == 5 ) 331 && ( tmp.charAt( 2 ) == ':' ) ) 332 { 333 //String hhmm = tmp.substring(0,2) + tmp.substring(3); 334 favourite.setBeforeTime( new Time( tmp ) ); 335 setField = true; 336 } 337 else 338 { 339 favourite.setBeforeTime( new Time( ) ); 340 } 341 342 // Set the day of the week 343 tmp = (String)cmbDayOfWeek.getSelectedItem( ); 344 345 if( !tmp.equals( StringHelper.EMPTY_STRING ) ) 346 { 347 Calendar cal = GregorianCalendar.getInstance( ); 348 349 try 350 { 351 cal.setTime( dayOfWeekFormat.parse( tmp ) ); 352 favourite.setDayOfWeek( cal.get( Calendar.DAY_OF_WEEK ) ); 353 setField = true; 354 } 355 catch( java.text.ParseException ex ) 356 { 357 Application.getInstance( ).getLogger( ) 358 .log( 359 Level.WARNING, "Error on parse day of week", ex ); 360 favourite.setDayOfWeek( -1 ); 361 } 362 } 363 else 364 { 365 favourite.setDayOfWeek( -1 ); 366 } 367 368 setChanged( ); 369 370 return setField; 371 } 372 373 /** 374 * Give the favourite a name depending on its properties 375 */ calcTxtName( )376 private void calcTxtName( ) 377 { 378 // Find the properties of the favourite 379 String title = txtTitle.getText( ); 380 String channel = cmbChannel.getSelectedItem( ).toString( ); 381 String after = txtAfter.getText( ); 382 String before = txtBefore.getText( ); 383 String dayOfWeek = cmbDayOfWeek.getSelectedItem( ).toString( ); 384 String description = txtDescriptionContains.getText( ); 385 386 // Prepare strings that will be substituted into the name template 387 String equalsString = StringHelper.EMPTY_STRING; 388 Object[] equalsArray = { title }; 389 String containsString = StringHelper.EMPTY_STRING; 390 Object[] containsArray = { title }; 391 String regexpString = StringHelper.EMPTY_STRING; 392 Object[] regexpArray = { title }; 393 String channelString = StringHelper.EMPTY_STRING; 394 Object[] channelArray = { channel }; 395 String afterString = StringHelper.EMPTY_STRING; 396 Object[] afterArray = { after }; 397 String beforeString = StringHelper.EMPTY_STRING; 398 Object[] beforeArray = { before }; 399 String dayOfWeekString = StringHelper.EMPTY_STRING; 400 Object[] dayOfWeekArray = { dayOfWeek }; 401 String descriptionContainsString = StringHelper.EMPTY_STRING; 402 Object[] descriptionContainsArray = { description }; 403 404 if( !title.equals( StringHelper.EMPTY_STRING ) ) 405 { 406 if( 407 cmbTitle.getSelectedItem( ) 408 .equals( 409 Application.getInstance( ) 410 .getLocalizedMessage( "exactly" ) ) ) 411 { 412 equalsString = Application.getInstance( ) 413 .getLocalizedMessage( 414 "favourite_name_equals_template", equalsArray ); 415 } 416 else if( 417 cmbTitle.getSelectedItem( ) 418 .equals( 419 Application.getInstance( ) 420 .getLocalizedMessage( "contains" ) ) ) 421 { 422 containsString = Application.getInstance( ) 423 .getLocalizedMessage( 424 "favourite_name_contains_template", containsArray ); 425 } 426 else 427 { 428 regexpString = Application.getInstance( ) 429 .getLocalizedMessage( 430 "favourite_name_regexp_template", regexpArray ); 431 } 432 } 433 434 if( !channel.equals( StringHelper.EMPTY_STRING ) ) 435 { 436 channelString = Application.getInstance( ) 437 .getLocalizedMessage( 438 "favourite_name_channel_template", channelArray ); 439 } 440 441 if( !after.equals( StringHelper.EMPTY_STRING ) ) 442 { 443 afterString = Application.getInstance( ) 444 .getLocalizedMessage( 445 "favourite_name_after_template", afterArray ); 446 } 447 448 if( !before.equals( StringHelper.EMPTY_STRING ) ) 449 { 450 beforeString = Application.getInstance( ) 451 .getLocalizedMessage( 452 "favourite_name_before_template", beforeArray ); 453 } 454 455 if( !dayOfWeek.equals( StringHelper.EMPTY_STRING ) ) 456 { 457 dayOfWeekString = Application.getInstance( ) 458 .getLocalizedMessage( 459 "favourite_name_day_of_week_template", dayOfWeekArray ); 460 } 461 462 if( !description.equals( StringHelper.EMPTY_STRING ) ) 463 { 464 descriptionContainsString = 465 Application.getInstance( ).getLocalizedMessage( 466 "favourite_name_description_contains_template", 467 descriptionContainsArray 468 ); 469 } 470 471 Object[] nameArgs = 472 { 473 equalsString, containsString, regexpString, channelString, 474 beforeString, afterString, dayOfWeekString, 475 descriptionContainsString 476 }; 477 String name = 478 Application.getInstance( ) 479 .getLocalizedMessage( 480 "favourite_name_template", nameArgs ); 481 name = name.replaceAll( SPACE_RE_FROM, SPACE_RE_TO ).trim( ); 482 483 if( name.equals( StringHelper.EMPTY_STRING ) ) 484 { 485 name = Application.getInstance( ) 486 .getLocalizedMessage( "all_programmes" ); 487 } 488 489 txtName.setText( name ); 490 } 491 492 /** 493 * Add action listeners to the UI components 494 */ addActionListeners( )495 private void addActionListeners( ) 496 { 497 txtTitle.addActionListener( 498 new java.awt.event.ActionListener( ) 499 { 500 public void actionPerformed( java.awt.event.ActionEvent evt ) 501 { 502 txtTitleActionPerformed( evt ); 503 } 504 } ); 505 cmbTitle.addActionListener( 506 new java.awt.event.ActionListener( ) 507 { 508 public void actionPerformed( java.awt.event.ActionEvent evt ) 509 { 510 cmbTitleActionPerformed( evt ); 511 } 512 } ); 513 txtDescriptionContains.addActionListener( 514 new java.awt.event.ActionListener( ) 515 { 516 public void actionPerformed( java.awt.event.ActionEvent evt) 517 { 518 txtDescriptionContainsActionPerformed( evt ); 519 } 520 } ); 521 cmbChannel.addActionListener( 522 new java.awt.event.ActionListener( ) 523 { 524 public void actionPerformed( java.awt.event.ActionEvent evt ) 525 { 526 cmbChannelActionPerformed( evt ); 527 } 528 } ); 529 txtAfter.addActionListener( 530 new java.awt.event.ActionListener( ) 531 { 532 public void actionPerformed( java.awt.event.ActionEvent evt ) 533 { 534 txtAfterActionPerformed( evt ); 535 } 536 } ); 537 txtBefore.addActionListener( 538 new java.awt.event.ActionListener( ) 539 { 540 public void actionPerformed( java.awt.event.ActionEvent evt ) 541 { 542 txtBeforeActionPerformed( evt ); 543 } 544 } ); 545 cmbDayOfWeek.addActionListener( 546 new java.awt.event.ActionListener( ) 547 { 548 public void actionPerformed( java.awt.event.ActionEvent evt ) 549 { 550 cmbDayOfWeekActionPerformed( evt ); 551 } 552 } ); 553 butOK.addActionListener( 554 new java.awt.event.ActionListener( ) 555 { 556 public void actionPerformed( java.awt.event.ActionEvent evt ) 557 { 558 butOKActionPerformed( evt ); 559 } 560 } ); 561 butCancel.addActionListener( 562 new java.awt.event.ActionListener( ) 563 { 564 public void actionPerformed( java.awt.event.ActionEvent evt ) 565 { 566 butCancelActionPerformed( evt ); 567 } 568 } ); 569 } 570 571 /** 572 * Create the UI 573 */ initComponents( )574 private void initComponents( ) 575 { 576 java.awt.GridBagConstraints gridBagConstraints; 577 getContentPane( ).setLayout( new java.awt.GridBagLayout( ) ); 578 labTitle = new javax.swing.JLabel( 579 Application.getInstance( ).getLocalizedMessage( 580 "title_matches" ) + ':', javax.swing.SwingConstants.RIGHT ); 581 gridBagConstraints = new java.awt.GridBagConstraints( ); 582 gridBagConstraints.gridx = 0; 583 gridBagConstraints.gridy = 1; 584 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 585 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 586 getContentPane( ).add( labTitle, gridBagConstraints ); 587 txtTitle = new javax.swing.JTextField( ); 588 txtTitle.setMinimumSize( new java.awt.Dimension( 50, 25 ) ); 589 txtTitle.setPreferredSize( new java.awt.Dimension( 200, 25 ) ); 590 gridBagConstraints = new java.awt.GridBagConstraints( ); 591 gridBagConstraints.gridx = 1; 592 gridBagConstraints.gridy = 1; 593 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 594 gridBagConstraints.weightx = 0.9; 595 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 596 getContentPane( ).add( txtTitle, gridBagConstraints ); 597 cmbTitle = new javax.swing.JComboBox( ); 598 cmbTitle.setPreferredSize( new java.awt.Dimension( 150, 25 ) ); 599 gridBagConstraints = new java.awt.GridBagConstraints( ); 600 gridBagConstraints.gridx = 2; 601 gridBagConstraints.gridy = 1; 602 gridBagConstraints.gridwidth = 2; 603 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 604 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 605 getContentPane( ).add( cmbTitle, gridBagConstraints ); 606 labDescription = new javax.swing.JLabel( 607 Application.getInstance( ).getLocalizedMessage( 608 "description" ) + ':', javax.swing.SwingConstants.RIGHT ); 609 gridBagConstraints = new java.awt.GridBagConstraints( ); 610 gridBagConstraints.gridx = 0; 611 gridBagConstraints.gridy = 2; 612 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 613 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 614 getContentPane( ).add( labDescription, gridBagConstraints ); 615 txtDescriptionContains = new javax.swing.JTextField( ); 616 txtDescriptionContains.setMinimumSize( 617 new java.awt.Dimension( 50, 25 ) ); 618 txtDescriptionContains.setPreferredSize( 619 new java.awt.Dimension( 200, 25 ) ); 620 gridBagConstraints = new java.awt.GridBagConstraints( ); 621 gridBagConstraints.gridx = 1; 622 gridBagConstraints.gridy = 2; 623 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 624 gridBagConstraints.weightx = 0.9; 625 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 626 getContentPane( ).add( txtDescriptionContains, gridBagConstraints ); 627 labSearchDescriptionAndCredits = new javax.swing.JLabel( 628 Application.getInstance().getLocalizedMessage( 629 "search_in_description_and_credits" ), 630 javax.swing.SwingConstants.LEFT 631 ); 632 gridBagConstraints = new java.awt.GridBagConstraints( ); 633 gridBagConstraints.gridx = 2; 634 gridBagConstraints.gridy = 2; 635 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 636 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 637 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 638 gridBagConstraints.weightx = 0.1; 639 getContentPane( ).add( 640 labSearchDescriptionAndCredits, gridBagConstraints ); 641 labChannel = new javax.swing.JLabel( 642 Application.getInstance( ).getLocalizedMessage( "channel_is" ) 643 + ':', javax.swing.SwingConstants.RIGHT ); 644 gridBagConstraints = new java.awt.GridBagConstraints( ); 645 gridBagConstraints.gridx = 0; 646 gridBagConstraints.gridy = 3; 647 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 648 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 649 getContentPane( ).add( labChannel, gridBagConstraints ); 650 cmbChannel = new javax.swing.JComboBox( ); 651 cmbChannel.setPreferredSize( new java.awt.Dimension( 200, 25 ) ); 652 gridBagConstraints = new java.awt.GridBagConstraints( ); 653 gridBagConstraints.gridx = 1; 654 gridBagConstraints.gridy = 3; 655 gridBagConstraints.gridwidth = 3; 656 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 657 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 658 gridBagConstraints.weightx = 0.9; 659 getContentPane( ).add( cmbChannel, gridBagConstraints ); 660 labAfter = new javax.swing.JLabel( 661 Application.getInstance( ).getLocalizedMessage( "on_after" ) 662 + ':', javax.swing.SwingConstants.RIGHT ); 663 gridBagConstraints = new java.awt.GridBagConstraints( ); 664 gridBagConstraints.gridx = 0; 665 gridBagConstraints.gridy = 4; 666 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 667 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 668 getContentPane( ).add( labAfter, gridBagConstraints ); 669 txtAfter = new javax.swing.JTextField( ); 670 txtAfter.setMinimumSize( new java.awt.Dimension( 50, 25 ) ); 671 gridBagConstraints = new java.awt.GridBagConstraints( ); 672 gridBagConstraints.gridx = 1; 673 gridBagConstraints.gridy = 4; 674 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 675 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 676 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 677 gridBagConstraints.weightx = 0.9; 678 getContentPane( ).add( txtAfter, gridBagConstraints ); 679 txtBefore = new javax.swing.JTextField( ); 680 txtBefore.setMinimumSize( new java.awt.Dimension( 50, 25 ) ); 681 gridBagConstraints = new java.awt.GridBagConstraints( ); 682 gridBagConstraints.gridx = 1; 683 gridBagConstraints.gridy = 5; 684 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 685 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 686 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 687 gridBagConstraints.weightx = 0.9; 688 getContentPane( ).add( txtBefore, gridBagConstraints ); 689 labBefore = new javax.swing.JLabel( 690 Application.getInstance( ).getLocalizedMessage( "on_before" ) 691 + ':', javax.swing.SwingConstants.RIGHT ); 692 gridBagConstraints = new java.awt.GridBagConstraints( ); 693 gridBagConstraints.gridx = 0; 694 gridBagConstraints.gridy = 5; 695 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 696 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 697 getContentPane( ).add( labBefore, gridBagConstraints ); 698 labBlankFields = new javax.swing.JLabel( 699 Application.getInstance( ) 700 .getLocalizedMessage( 701 "you_may_leave_any_fields_blank" ), 702 javax.swing.SwingConstants.CENTER ); 703 gridBagConstraints = new java.awt.GridBagConstraints( ); 704 gridBagConstraints.gridx = 0; 705 gridBagConstraints.gridy = 0; 706 gridBagConstraints.gridwidth = 4; 707 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 708 getContentPane( ).add( labBlankFields, gridBagConstraints ); 709 labTimeFormat = new javax.swing.JLabel( "<html>" + 710 Application.getInstance( ) 711 .getLocalizedMessage( 712 "times_should_be_entered_as_hhmm" ) + "</html>", 713 javax.swing.SwingConstants.LEFT ); 714 gridBagConstraints = new java.awt.GridBagConstraints( ); 715 gridBagConstraints.gridx = 2; 716 gridBagConstraints.gridy = 4; 717 gridBagConstraints.gridwidth = 2; 718 gridBagConstraints.gridheight = 2; 719 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 720 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 721 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 722 gridBagConstraints.weightx = 0.1; 723 getContentPane( ).add( labTimeFormat, gridBagConstraints ); 724 labDayOfWeek = new javax.swing.JLabel( 725 Application.getInstance( ).getLocalizedMessage( 726 "on_day_label" ) + ':', javax.swing.SwingConstants.RIGHT ); 727 gridBagConstraints = new java.awt.GridBagConstraints( ); 728 gridBagConstraints.gridx = 0; 729 gridBagConstraints.gridy = 7; 730 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 731 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 732 getContentPane( ).add( labDayOfWeek, gridBagConstraints ); 733 labName = new javax.swing.JLabel( 734 Application.getInstance( ).getLocalizedMessage( "name" ) 735 + ':', javax.swing.SwingConstants.RIGHT ); 736 gridBagConstraints = new java.awt.GridBagConstraints( ); 737 gridBagConstraints.gridx = 0; 738 gridBagConstraints.gridy = 8; 739 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 740 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 741 getContentPane( ).add( labName, gridBagConstraints ); 742 cmbDayOfWeek = new javax.swing.JComboBox( ); 743 cmbDayOfWeek.setPreferredSize( new java.awt.Dimension( 200, 25 ) ); 744 gridBagConstraints = new java.awt.GridBagConstraints( ); 745 gridBagConstraints.gridx = 1; 746 gridBagConstraints.gridy = 7; 747 gridBagConstraints.gridwidth = 3; 748 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 749 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 750 gridBagConstraints.weightx = 0.9; 751 getContentPane( ).add( cmbDayOfWeek, gridBagConstraints ); 752 txtName = new javax.swing.JTextField( 753 Application.getInstance( ) 754 .getLocalizedMessage( "all_programmes" ) ); 755 txtName.setEditable( false ); 756 txtName.setPreferredSize( new java.awt.Dimension( 200, 25 ) ); 757 txtName.setMinimumSize( new java.awt.Dimension( 200, 25 ) ); 758 gridBagConstraints = new java.awt.GridBagConstraints( ); 759 gridBagConstraints.gridx = 1; 760 gridBagConstraints.gridy = 8; 761 gridBagConstraints.gridwidth = 3; 762 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 763 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 764 gridBagConstraints.weightx = 0.9; 765 getContentPane( ).add( txtName, gridBagConstraints ); 766 jPanel1 = new javax.swing.JPanel( new java.awt.GridBagLayout( ) ); 767 butOK = new javax.swing.JButton( 768 Application.getInstance( ).getLocalizedMessage( "ok" ) ); 769 butOK.setMinimumSize( new java.awt.Dimension( 87, 26 ) ); 770 butOK.setPreferredSize( new java.awt.Dimension( 87, 26 ) ); 771 gridBagConstraints = new java.awt.GridBagConstraints( ); 772 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 773 jPanel1.add( butOK, gridBagConstraints ); 774 butCancel = new javax.swing.JButton( 775 Application.getInstance( ).getLocalizedMessage( "cancel" ) ); 776 butCancel.setMinimumSize( new java.awt.Dimension( 87, 26 ) ); 777 butCancel.setPreferredSize( new java.awt.Dimension( 87, 26 ) ); 778 gridBagConstraints = new java.awt.GridBagConstraints( ); 779 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 10 ); 780 jPanel1.add( butCancel, gridBagConstraints ); 781 gridBagConstraints = new java.awt.GridBagConstraints( ); 782 gridBagConstraints.gridx = 0; 783 gridBagConstraints.gridy = 9; 784 gridBagConstraints.gridwidth = 4; 785 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 786 getContentPane( ).add( jPanel1, gridBagConstraints ); 787 788 /*labTimeFormat1 = new javax.swing.JLabel( 789 FreeGuide.msg.getString( "as_hhmm" ), 790 javax.swing.SwingConstants.LEFT ); 791 labTimeFormat1.setFont( new java.awt.Font( "Dialog", 0, 12 ) ); 792 gridBagConstraints = new java.awt.GridBagConstraints( ); 793 gridBagConstraints.gridx = 2; 794 gridBagConstraints.gridy = 4; 795 gridBagConstraints.gridwidth = 2; 796 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 797 gridBagConstraints.insets = new java.awt.Insets( 5, 5, 5, 5 ); 798 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 799 gridBagConstraints.weightx = 0.4; 800 getContentPane( ).add( labTimeFormat1, gridBagConstraints ); 801 */ 802 getRootPane( ).setDefaultButton( butOK ); 803 pack( ); 804 } 805 806 /** 807 * Description of the Method 808 * 809 * @param evt Description of the Parameter 810 */ txtTitleActionPerformed( java.awt.event.ActionEvent evt )811 private void txtTitleActionPerformed( java.awt.event.ActionEvent evt ) 812 { 813 calcTxtName( ); 814 } 815 txtDescriptionContainsActionPerformed( java.awt.event.ActionEvent evt )816 private void txtDescriptionContainsActionPerformed( java.awt.event.ActionEvent evt ) 817 { 818 calcTxtName( ); 819 } 820 821 /** 822 * Description of the Method 823 * 824 * @param evt Description of the Parameter 825 */ cmbDayOfWeekActionPerformed( java.awt.event.ActionEvent evt )826 private void cmbDayOfWeekActionPerformed( java.awt.event.ActionEvent evt ) 827 { 828 calcTxtName( ); 829 } 830 831 /** 832 * Description of the Method 833 * 834 * @param evt Description of the Parameter 835 */ txtBeforeActionPerformed( java.awt.event.ActionEvent evt )836 private void txtBeforeActionPerformed( java.awt.event.ActionEvent evt ) 837 { 838 calcTxtName( ); 839 } 840 841 /** 842 * Description of the Method 843 * 844 * @param evt Description of the Parameter 845 */ txtAfterActionPerformed( java.awt.event.ActionEvent evt )846 private void txtAfterActionPerformed( java.awt.event.ActionEvent evt ) 847 { 848 calcTxtName( ); 849 } 850 851 /** 852 * Description of the Method 853 * 854 * @param evt Description of the Parameter 855 */ cmbChannelActionPerformed( java.awt.event.ActionEvent evt )856 private void cmbChannelActionPerformed( java.awt.event.ActionEvent evt ) 857 { 858 calcTxtName( ); 859 } 860 861 /** 862 * Description of the Method 863 * 864 * @param evt Description of the Parameter 865 */ cmbTitleActionPerformed( java.awt.event.ActionEvent evt )866 private void cmbTitleActionPerformed( java.awt.event.ActionEvent evt ) 867 { 868 calcTxtName( ); 869 } 870 871 /** 872 * Description of the Method 873 * 874 * @param evt Description of the Parameter 875 */ butCancelActionPerformed( java.awt.event.ActionEvent evt )876 private void butCancelActionPerformed( java.awt.event.ActionEvent evt ) 877 { 878 quit( ); 879 } 880 881 /** 882 * Description of the Method 883 * 884 * @param evt Description of the Parameter 885 */ butOKActionPerformed( java.awt.event.ActionEvent evt )886 private void butOKActionPerformed( java.awt.event.ActionEvent evt ) 887 { 888 if ( updateFavourite( ) ) 889 { 890 setSave( ); 891 quit( ); 892 } 893 else 894 { 895 JOptionPane.showMessageDialog( this, 896 Application.getInstance().getLocalizedMessage( 897 "please_choose_some_filter_options" ), 898 Application.getInstance().getLocalizedMessage( 899 "no_filters_chosen" ), 900 JOptionPane.ERROR_MESSAGE ); 901 } 902 } 903 } 904