Changeset 4541


Ignore:
Timestamp:
2003-06-10T15:43:45+12:00 (21 years ago)
Author:
mdewsnip
Message:

Some more improvements and optimizations. Had to add a special case for the nasty extracted metadata set (Note: this was *not* a bug!! This was a new feature request, OK?? Good).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/valuetree/GValueTree.java

    r4455 r4541  
    4747import org.greenstone.gatherer.gui.SmarterTextArea;
    4848import org.greenstone.gatherer.msm.ElementWrapper;
    49 import org.greenstone.gatherer.msm.Metadata;
    5049import org.greenstone.gatherer.util.Utility;
    5150/**
     
    5857    private boolean ignore_tree_selection_event = false;
    5958    private boolean manual_text_edit_event;
    60     private JPanel center_pane;
    6159    private CardLayout card_layout;
     60    private String card_showing = null;
    6261    /** The metadata element that is currently selected. */
    6362    private ElementWrapper selected_metadata_element = null;
    6463    private GValueModel vm;
    65     private JTextArea auto_message;
     64    private JTextArea extracted_message;
    6665    private JTextField value;
    6766    private JTree tree;
     
    8180
    8281    setFont(Gatherer.config.getFont("general.font", false));
    83 
    84     Dimension size = new Dimension(width, height);
    85     setPreferredSize(size);
    86 
    87     center_pane = new JPanel();
    88 
    89     card_layout = new CardLayout();
    90 
    91     JPanel auto_pane = new JPanel();
    92     args[0] = "Title";
    93     auto_message = new SmarterTextArea(get("AutoMessage", args), false);
    94     auto_message.setLineWrap(true);
    95     auto_message.setOpaque(false);
    96     auto_message.setWrapStyleWord(true);
    97 
    98     JPanel tree_pane = new JPanel();
    99 
    100     JLabel tree_label = new JLabel(get("Tree"));
    101 
    102     tree = new JTree(new GValueModel());
    103     tree.addTreeSelectionListener(this);
    104     tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    105     tree.setRootVisible(true);
    106     tree.putClientProperty("JTree.lineStyle", "Angled");
     82    setPreferredSize(new Dimension(width, height));
     83
     84    JPanel metadata_pane = new JPanel();
    10785
    10886    JPanel value_pane = new JPanel();
     
    11896    JPanel button_pane = new JPanel();
    11997
     98    JPanel tree_pane = new JPanel();
     99    JLabel tree_label = new JLabel(get("Tree"));
     100
     101    tree = new JTree(new GValueModel());
     102    tree.addTreeSelectionListener(this);
     103    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
     104    tree.setRootVisible(false);
     105    tree.putClientProperty("JTree.lineStyle", "Angled");
     106
     107    JPanel extracted_pane = new JPanel();
     108    extracted_message = new SmarterTextArea("", false);
     109    extracted_message.setLineWrap(true);
     110    extracted_message.setOpaque(false);
     111    extracted_message.setWrapStyleWord(true);
     112
     113    card_layout = new CardLayout();
     114
    120115    // Layout
    121     tree_pane.setLayout(new BorderLayout());
    122     tree_pane.add(tree_label, BorderLayout.NORTH);
    123     tree_pane.add(new JScrollPane(tree), BorderLayout.CENTER);
    124 
    125     auto_pane.setBorder(BorderFactory.createEmptyBorder(25,10,25,10));
    126     auto_pane.setLayout(new BorderLayout());
    127     auto_pane.add(auto_message, BorderLayout.CENTER);
    128 
    129     center_pane.setBorder(BorderFactory.createEmptyBorder(2,0,2,0));
    130     center_pane.setLayout(card_layout);
    131     center_pane.add(tree_pane, TREE);
    132     center_pane.add(auto_pane, NONE);
     116
     117    value_field_pane.setBorder(BorderFactory.createEmptyBorder(0,0,0,5));
     118    value_field_pane.setLayout(new BorderLayout(0, 0));
     119    value_field_pane.add(value, BorderLayout.CENTER);
    133120
    134121    button_pane.setBorder(BorderFactory.createEmptyBorder(5,0,0,0));
     
    137124    button_pane.add(update);
    138125    button_pane.add(remove);
    139 
    140     value_field_pane.setBorder(BorderFactory.createEmptyBorder(0,0,0,5));
    141     value_field_pane.setLayout(new BorderLayout(0, 0));
    142     value_field_pane.add(value, BorderLayout.CENTER);
    143126
    144127    value_pane.setBorder(BorderFactory.createEmptyBorder(0,0,5,0));
     
    149132    value_pane.add(button_pane, BorderLayout.SOUTH);
    150133
     134    tree_pane.setLayout(new BorderLayout());
     135    tree_pane.add(tree_label, BorderLayout.NORTH);
     136    tree_pane.add(new JScrollPane(tree), BorderLayout.CENTER);
     137
     138    metadata_pane.setLayout(new BorderLayout());
     139    metadata_pane.add(value_pane, BorderLayout.NORTH);
     140    metadata_pane.add(tree_pane, BorderLayout.CENTER);
     141
     142    extracted_pane.setBorder(BorderFactory.createEmptyBorder(25,10,25,10));
     143    extracted_pane.setLayout(new BorderLayout());
     144    extracted_pane.add(extracted_message, BorderLayout.CENTER);
     145
    151146    this.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
    152     this.setLayout(new BorderLayout());
    153     this.add(value_pane, BorderLayout.NORTH);
    154     this.add(center_pane, BorderLayout.CENTER);
     147    this.setLayout(card_layout);
     148    this.add(metadata_pane, TREE);
     149    this.add(extracted_pane, NONE);
     150    card_showing = TREE;
    155151    }
    156152
     
    168164    public String getSelectedValue() {
    169165    return value.getText();
    170     }
    171 
    172 
    173     public void setRootVisible(boolean val) {
    174     tree.setRootVisible(val);
    175166    }
    176167
     
    181172    if (element == null) {
    182173        selected_metadata_element = null;
    183         setTreeEnabled(false);
    184174        return;
    185175    }
     
    205195    selected_metadata_element = element;
    206196    vm = Gatherer.c_man.getCollection().msm.getValueTree(element);
    207     setTreeEnabled(true);
    208197    tree.setModel(vm);
     198
     199    // Special case the extracted metadata set
     200    if (selected_metadata_element.getNamespace().equals("")) {
     201        // Display the panel showing the "you cannot edit this metadata" message
     202        args[0] = selected_metadata_element.toString();
     203        ((SmarterTextArea) extracted_message).systemSetText(get("AutoMessage", args));
     204        card_layout.show(this, NONE);
     205        card_showing = NONE;
     206    }
     207    else {
     208        // Display the panel for viewing and assigning metadata
     209        card_layout.show(this, TREE);
     210        card_showing = TREE;
     211    }
    209212    }
    210213
     
    227230    //   updating the tree is handled there (DocumentListenerImpl::validate())
    228231    // System.err.println("Setting selected value to: " + val);
    229     manual_text_edit_event = val.equals("");  // Set to false unless val == ""
    230     value.setText(Utility.stripNL(val));
    231     value.setCaretPosition(0);
    232     manual_text_edit_event = true;
     232    if (!card_showing.equals(NONE)) {
     233        manual_text_edit_event = val.equals("");  // Set to false unless val == ""
     234        value.setText(Utility.stripNL(val));
     235        value.setCaretPosition(0);
     236        manual_text_edit_event = true;
     237    }
    233238    }
    234239
     
    243248    }
    244249    return Gatherer.dictionary.get(key,args);
    245     }
    246 
    247 
    248     private void setTreeEnabled(boolean value) {
    249     tree.setRootVisible(!value);
    250     tree.setEnabled(value);
    251     if(value) {
    252         card_layout.show(center_pane, TREE);
    253     }
    254     else {
    255         Metadata selected_metadata = metaedit.getSelectedMetadata();
    256         if(selected_metadata != null && selected_metadata.getElement() != null) {
    257         args[0] = selected_metadata.getElement().toString();
    258         }
    259         else {
    260         args[0] = "";
    261         }
    262         ((SmarterTextArea)auto_message).systemSetText(get("AutoMessage", args));
    263         card_layout.show(center_pane, NONE);
    264     }
    265250    }
    266251
Note: See TracChangeset for help on using the changeset viewer.