001 package com.sptci.rwt.webui.model;
002
003 import nextapp.echo2.app.Component;
004 import nextapp.echo2.app.Grid;
005 import nextapp.echo2.app.Label;
006
007 import echopointng.DirectHtml;
008 import echopointng.GroupBox;
009
010 import com.sptci.echo2.Configuration;
011
012 import com.sptci.rwt.MetaData;
013 import com.sptci.rwt.TriggerMetaData;
014
015 /**
016 * A view component used to display the information contained in
017 * {@link com.sptci.rwt.TriggerMetaData}.
018 *
019 * <p>© Copyright 2007 <a href='http://sptci.com/' target='_new'>Sans Pareil Technologies, Inc.</a></p>
020 * @author Rakesh Vidyadharan 2007-10-07
021 * @version $Id: TriggerView.java 4123 2008-05-25 21:49:01Z rakesh $
022 */
023 public class TriggerView extends SourceView
024 {
025 /** The meta data object whose details are to be displayed. */
026 private final TriggerMetaData metaData;
027
028 /**
029 * Create a new instance of the view using the specified model object.
030 *
031 * @param metaData The {@link #metaData} model object to use.
032 */
033 public TriggerView( final TriggerMetaData metaData )
034 {
035 this.metaData = metaData;
036 }
037
038 /**
039 * Lifecycle method used to initialise component when added to a
040 * container hierarchy.
041 *
042 * @see #createDetails
043 * @see #createStatementDetails
044 */
045 @Override
046 public void init()
047 {
048 removeAll();
049 add( createDetails() );
050 add( createStatementDetails() );
051 }
052
053 /**
054 * Create the component used to display the details of the index.
055 *
056 * @see #createLabels
057 * @return The component that displays the index information.
058 */
059 protected Component createDetails()
060 {
061 Grid grid = new Grid();
062
063 createLabels( "name", metaData, grid );
064 createLabels( "table", metaData, grid );
065 createLabels( "tableSchema", metaData, grid );
066 createLabels( "event", metaData, grid );
067 createLabels( "orientation", metaData, grid );
068 createLabels( "timing", metaData, grid );
069
070 GroupBox box = new GroupBox( Configuration.getString( this, "title" ) );
071 box.add( grid );
072 return box;
073 }
074
075 /**
076 * Create the component used to display the SQL statement that is executed
077 * by the trigger.
078 *
079 * @see #toHtml
080 * @see #syntaxHighlight
081 * @return The component that displays the SQL statement
082 */
083 protected Component createStatementDetails()
084 {
085 TriggerMetaData tmd = (TriggerMetaData) metaData;
086 String statement = tmd.getStatement();
087
088 if ( statement == null ) return new Label( "" );
089
090 statement = syntaxHighlight( toHtml( statement ) );
091
092 GroupBox box = new GroupBox(
093 Configuration.getString( this, "statement.title" ) );
094 box.add( new DirectHtml( statement ) );
095 return box;
096 }
097 }