Logo Search packages:      
Sourcecode: jclic version File versions  Download package

MediaContentEditor.java

/*
 * File    : MediaContentEditor.java
 * Created : 23-dec-2002 11:58
 * By      : fbusquets
 *
 * JClic - Authoring and playing system for educational activities
 *
 * Copyright (C) 2000 - 2005 Francesc Busquets & Departament
 * d'Educacio de la Generalitat de Catalunya
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details (see the LICENSE file).
 */

package edu.xtec.jclic.media;

import edu.xtec.jclic.Constants;
import edu.xtec.util.Options;
import edu.xtec.jclic.bags.MediaBagEditor;
import java.util.Vector;
import java.util.HashMap;
import java.awt.Component;
import edu.xtec.util.Messages;
import java.util.EventObject;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import java.beans.PropertyChangeEvent;
import javax.swing.text.Document;
import edu.xtec.jclic.beans.SmallIntEditor;
import java.awt.CardLayout;
import java.util.Enumeration;
import edu.xtec.jclic.misc.Utils;
import edu.xtec.jclic.bags.MediaBagSelector;
import edu.xtec.jclic.beans.MediaContentButton;
import edu.xtec.util.ResourceManager;
import edu.xtec.util.StrUtils;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JToggleButton;

/**
 *
 * @author Francesc Busquets (fbusquets@xtec.net)
 * @version 1.0
 */

00054 public class MediaContentEditor extends edu.xtec.util.CtrlPanel {
    
    MediaContent mc;
    Options options;
    MediaBagEditor mbe;
    public static final String PROP_MC="mediaContent";
    private static final String[] LOCATION_FROM_MSG_CODES={"box", "window", "frame"};    
    Vector locationFromNames;
    private JTextField[] textFields;
    
    /** Creates new form MediaContentEditor */
00065     public MediaContentEditor(Options options, MediaContent mc, MediaBagEditor mbe) {
        this.options=options;
        pre_init();
        initComponents();
        post_init();
        setMediaBagEditor(mbe);
        setMediaContent(mc);
    }
    
    private void pre_init(){
        //mediaTypeNames=new Vector();
        //for(int i=0; i<MediaContent.NUM_MEDIA_TYPES; i++)
        //    mediaTypeNames.add(options.getMsg("edit_mc_type_"+MEDIA_TYPE_MSG_CODES[i]));
        locationFromNames=new Vector();
        for(int i=0; i<LOCATION_FROM_MSG_CODES.length; i++)
            locationFromNames.add(options.getMsg("edit_mc_location_from_"+LOCATION_FROM_MSG_CODES[i]));
    }
    
    private void post_init(){
        textFields=new JTextField[]{
            fileTxt, externalTxt, fromTxt, toTxt, xTxt, yTxt
        };
        for(int i=0; i<textFields.length; i++)
            textFields[i].getDocument().addDocumentListener(this);
        
        Enumeration en=mediaTypes.getElements();
        while(en.hasMoreElements()){
            JToggleButton rb=(JToggleButton)en.nextElement();
            rb.addActionListener(this);
        }
        
    }
    
    public void setMediaBagEditor(MediaBagEditor mbe){
        this.mbe=mbe;
    }
    
    private void checkAndFirePropertyChange(MediaContent oldMc){
        MediaContent currentMc=getMc();
        boolean eq=((oldMc==null && currentMc==null) || (oldMc!=null && oldMc.equals(currentMc)));
        if(!eq)
            firePropertyChange(PROP_MC, oldMc, currentMc);
    }
    
    public void setMediaContent(MediaContent c){
        
        if(c==null)
            c=new MediaContent();
        
        setInitializing(true);
        
        mc=(MediaContent)c.clone();
        
        Enumeration en=mediaTypes.getElements();
        JToggleButton rb=(JToggleButton)en.nextElement();
        int i=0;
        for(;i<mc.mediaType; i++)
            rb=(JToggleButton)en.nextElement();
        rb.setSelected(true);
        
        levelEditor.setValue(mc.level);
        recBufferEditor.setValue(mc.recBuffer);
        fileTxt.setText(mc.mediaFileName);
        externalTxt.setText(mc.externalParam);
        fromTxt.setText(Integer.toString(mc.from));
        toTxt.setText(Integer.toString(mc.to));
        lengthEditor.setValue(mc.length);
        stretchChk.setSelected(mc.stretch);
        if(mc.absLocation!=null)
            posAbsoluteRadio.setSelected(true);
        else if(mc.free)
            posWindowRadio.setSelected(true);
        else
            posCellRadio.setSelected(true);
        //notFreeChk.setSelected(!mc.free);
        //locationChk.setSelected(mc.absLocation!=null);
        syncPointValues();
        loopChk.setSelected(mc.loop);
        autostartChk.setSelected(mc.autoStart);
        catchMouseChk.setSelected(mc.catchMouseEvents);
        checkEnabled();
        
        setInitializing(false);
    }
    
    public boolean check(Component parent){
        boolean result=false;
        switch(mc.mediaType){
            case MediaContent.PLAY_AUDIO:
            case MediaContent.PLAY_VIDEO:
            case MediaContent.PLAY_MIDI:
            case MediaContent.RUN_EXTERNAL:
            case MediaContent.URL:
            case MediaContent.RUN_CLIC_ACTIVITY:
                result=StrUtils.nullableString(mc.mediaFileName)!=null;
                break;
            case MediaContent.RECORD_AUDIO:
            case MediaContent.PLAY_RECORDED_AUDIO:
                result=(mc.recBuffer>=0 && mc.recBuffer<10);
                break;
            case MediaContent.RUN_CLIC_PACKAGE:
                result=StrUtils.nullableString(mc.mediaFileName)!=null 
                || StrUtils.nullableString(mc.externalParam)!=null;
                break;
                
            case MediaContent.EXIT:
            case MediaContent.RETURN:
                result=true;
                break;
        }
        if(!result)
            options.getMessages().showAlert(parent, "edit_mc_err_nullContent");
        return result;
    }
    
    public MediaContent getMc(){
        return mc;
    }
    
    public MediaContent getMcClone(){
        return mc==null ? null : (MediaContent)mc.clone();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
00193     private void initComponents() {//GEN-BEGIN:initComponents
        javax.swing.JPanel filePanelCard0;
        javax.swing.JPanel filePanelCard1;
        javax.swing.JPanel filePanelCard2;
        javax.swing.JPanel fragmentPanelCard0;
        javax.swing.JPanel fragmentPanelCard1;
        javax.swing.JPanel fragmentPanelCard2;
        java.awt.GridBagConstraints gridBagConstraints;
        javax.swing.JPanel locationPanelCard0;
        javax.swing.JPanel locationPanelCard1;
        javax.swing.JPanel lpanel;
        javax.swing.JToggleButton toggleType00;

        mediaTypes = new javax.swing.ButtonGroup();
        posTypes = new javax.swing.ButtonGroup();
        mediaTypePanel = new javax.swing.JPanel();
        toggleType00 = new javax.swing.JToggleButton();
        toggleType01 = new javax.swing.JToggleButton();
        toggleType02 = new javax.swing.JToggleButton();
        toggleType03 = new javax.swing.JToggleButton();
        toggleType04 = new javax.swing.JToggleButton();
        toggleType05 = new javax.swing.JToggleButton();
        toggleType06 = new javax.swing.JToggleButton();
        toggleType07 = new javax.swing.JToggleButton();
        toggleType08 = new javax.swing.JToggleButton();
        toggleType09 = new javax.swing.JToggleButton();
        toggleType10 = new javax.swing.JToggleButton();
        toggleType11 = new javax.swing.JToggleButton();
        toggleType12 = new javax.swing.JToggleButton();
        mainPanel = new javax.swing.JPanel();
        lbLevel = new javax.swing.JLabel();
        levelEditor = new edu.xtec.jclic.beans.SmallIntEditor();
        loopChk = new javax.swing.JCheckBox();
        autostartChk = new javax.swing.JCheckBox();
        filePanel = new javax.swing.JPanel();
        filePanelCard0 = new javax.swing.JPanel();
        filePanelCard1 = new javax.swing.JPanel();
        lbFile = new javax.swing.JLabel();
        fileTxt = new javax.swing.JTextField();
        findFileBtn = new javax.swing.JButton();
        filePanelCard2 = new javax.swing.JPanel();
        lbRecbuffer = new javax.swing.JLabel();
        recBufferEditor = new edu.xtec.jclic.beans.SmallIntEditor();
        lbLength = new javax.swing.JLabel();
        lengthEditor = new edu.xtec.jclic.beans.SmallIntEditor();
        fragmentPanel = new javax.swing.JPanel();
        fragmentPanelCard0 = new javax.swing.JPanel();
        fragmentPanelCard1 = new javax.swing.JPanel();
        lbFrom = new javax.swing.JLabel();
        fromTxt = new javax.swing.JTextField();
        lbTo = new javax.swing.JLabel();
        toTxt = new javax.swing.JTextField();
        fragmentPanelCard2 = new javax.swing.JPanel();
        lbExternal = new javax.swing.JLabel();
        externalTxt = new javax.swing.JTextField();
        locationPanel = new javax.swing.JPanel();
        locationPanelCard0 = new javax.swing.JPanel();
        locationPanelCard1 = new javax.swing.JPanel();
        lpanel = new javax.swing.JPanel();
        posCellRadio = new javax.swing.JRadioButton();
        posWindowRadio = new javax.swing.JRadioButton();
        posAbsoluteRadio = new javax.swing.JRadioButton();
        lbX = new javax.swing.JLabel();
        xTxt = new javax.swing.JTextField();
        lbY = new javax.swing.JLabel();
        yTxt = new javax.swing.JTextField();
        lbLocFrom = new javax.swing.JLabel();
        locFromCombo = new javax.swing.JComboBox(locationFromNames);
        catchMouseChk = new javax.swing.JCheckBox();
        stretchChk = new javax.swing.JCheckBox();

        setLayout(new java.awt.BorderLayout());

        setBorder(new javax.swing.border.EtchedBorder());
        mediaTypePanel.setLayout(new java.awt.GridBagLayout());

        mediaTypePanel.setBorder(new javax.swing.border.TitledBorder(options.getMsg("edit_mc_type")));
        toggleType00.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[0]));
        toggleType00.setText(options.getMsg("edit_mc_type_unknown"));
        toggleType00.setToolTipText(options.getMsg("edit_mc_type_unknown"));
        mediaTypes.add(toggleType00);
        toggleType00.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType00, gridBagConstraints);

        toggleType01.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[1]));
        toggleType01.setText(options.getMsg("edit_mc_type_sound"));
        toggleType01.setToolTipText(options.getMsg("edit_mc_type_sound"));
        mediaTypes.add(toggleType01);
        toggleType01.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType01, gridBagConstraints);

        toggleType02.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[2]));
        toggleType02.setText(options.getMsg("edit_mc_type_video"));
        toggleType02.setToolTipText(options.getMsg("edit_mc_type_video"));
        mediaTypes.add(toggleType02);
        toggleType02.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType02, gridBagConstraints);

        toggleType03.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[3]));
        toggleType03.setText(options.getMsg("edit_mc_type_midi"));
        toggleType03.setToolTipText(options.getMsg("edit_mc_type_midi"));
        mediaTypes.add(toggleType03);
        toggleType03.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType03, gridBagConstraints);

        toggleType04.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[4]));
        toggleType04.setText(options.getMsg("edit_mc_type_cdaudio"));
        toggleType04.setToolTipText(options.getMsg("edit_mc_type_cdaudio"));
        mediaTypes.add(toggleType04);
        toggleType04.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        toggleType04.setEnabled(false);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType04, gridBagConstraints);

        toggleType05.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[5]));
        toggleType05.setText(options.getMsg("edit_mc_type_record"));
        toggleType05.setToolTipText(options.getMsg("edit_mc_type_record"));
        mediaTypes.add(toggleType05);
        toggleType05.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType05, gridBagConstraints);

        toggleType06.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[6]));
        toggleType06.setText(options.getMsg("edit_mc_type_play_recorded"));
        toggleType06.setToolTipText(options.getMsg("edit_mc_type_play_recorded"));
        mediaTypes.add(toggleType06);
        toggleType06.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType06, gridBagConstraints);

        toggleType07.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[7]));
        toggleType07.setText(options.getMsg("edit_mc_type_run_activity"));
        toggleType07.setToolTipText(options.getMsg("edit_mc_type_run_activity"));
        mediaTypes.add(toggleType07);
        toggleType07.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType07, gridBagConstraints);

        toggleType08.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[8]));
        toggleType08.setText(options.getMsg("edit_mc_type_run_sequence"));
        toggleType08.setToolTipText(options.getMsg("edit_mc_type_run_sequence"));
        mediaTypes.add(toggleType08);
        toggleType08.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType08, gridBagConstraints);

        toggleType09.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[9]));
        toggleType09.setText(options.getMsg("edit_mc_type_run_external"));
        toggleType09.setToolTipText(options.getMsg("edit_mc_type_run_external"));
        mediaTypes.add(toggleType09);
        toggleType09.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType09, gridBagConstraints);

        toggleType10.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[10]));
        toggleType10.setText(options.getMsg("edit_mc_type_url"));
        toggleType10.setToolTipText(options.getMsg("edit_mc_type_url"));
        mediaTypes.add(toggleType10);
        toggleType10.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType10, gridBagConstraints);

        toggleType11.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[11]));
        toggleType11.setText(options.getMsg("edit_mc_type_exit"));
        toggleType11.setToolTipText(options.getMsg("edit_mc_type_exit"));
        mediaTypes.add(toggleType11);
        toggleType11.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType11, gridBagConstraints);

        toggleType12.setIcon(ResourceManager.getImageIcon(MediaContentButton.MEDIA_ICONS[12]));
        toggleType12.setText(options.getMsg("edit_mc_type_return"));
        toggleType12.setToolTipText(options.getMsg("edit_mc_type_return"));
        mediaTypes.add(toggleType12);
        toggleType12.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
        mediaTypePanel.add(toggleType12, gridBagConstraints);

        add(mediaTypePanel, java.awt.BorderLayout.WEST);

        mainPanel.setLayout(new java.awt.GridBagLayout());

        lbLevel.setText(options.getMsg("edit_mc_level"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(lbLevel, gridBagConstraints);

        levelEditor.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(levelEditor, gridBagConstraints);

        loopChk.setText(options.getMsg("edit_mc_loop"));
        loopChk.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = 2;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(loopChk, gridBagConstraints);

        autostartChk.setText(options.getMsg("edit_mc_autostart"));
        autostartChk.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(autostartChk, gridBagConstraints);

        filePanel.setLayout(new java.awt.CardLayout());

        filePanel.add(filePanelCard0, "card0");

        filePanelCard1.setLayout(new java.awt.GridBagLayout());

        lbFile.setText(options.getMsg("edit_mc_file"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard1.add(lbFile, gridBagConstraints);

        fileTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard1.add(fileTxt, gridBagConstraints);

        findFileBtn.setText("...");
        findFileBtn.addActionListener(this);
        filePanelCard1.add(findFileBtn, new java.awt.GridBagConstraints());

        filePanel.add(filePanelCard1, "card1");

        filePanelCard2.setLayout(new java.awt.GridBagLayout());

        lbRecbuffer.setText(options.getMsg("edit_mc_recBuffer"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard2.add(lbRecbuffer, gridBagConstraints);

        recBufferEditor.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard2.add(recBufferEditor, gridBagConstraints);

        lbLength.setText(options.getMsg("edit_mc_length"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard2.add(lbLength, gridBagConstraints);

        lengthEditor.setMax(15);
        lengthEditor.setValue(5);
        lengthEditor.setMin(1);
        lengthEditor.addPropertyChangeListener(SmallIntEditor.PROP_VALUE, this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        filePanelCard2.add(lengthEditor, gridBagConstraints);

        filePanel.add(filePanelCard2, "card2");

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(filePanel, gridBagConstraints);

        fragmentPanel.setLayout(new java.awt.CardLayout());

        fragmentPanel.add(fragmentPanelCard0, "card0");

        fragmentPanelCard1.setLayout(new java.awt.GridBagLayout());

        lbFrom.setLabelFor(fromTxt);
        lbFrom.setText(options.getMsg("edit_mc_from"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard1.add(lbFrom, gridBagConstraints);

        fromTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        fromTxt.setPreferredSize(new java.awt.Dimension(60, 21));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard1.add(fromTxt, gridBagConstraints);

        lbTo.setLabelFor(toTxt);
        lbTo.setText(options.getMsg("edit_mc_to"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard1.add(lbTo, gridBagConstraints);

        toTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        toTxt.setPreferredSize(new java.awt.Dimension(60, 21));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard1.add(toTxt, gridBagConstraints);

        fragmentPanel.add(fragmentPanelCard1, "card1");

        fragmentPanelCard2.setLayout(new java.awt.GridBagLayout());

        lbExternal.setLabelFor(externalTxt);
        lbExternal.setText(options.getMsg("edit_mc_externalParam"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard2.add(lbExternal, gridBagConstraints);

        externalTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        fragmentPanelCard2.add(externalTxt, gridBagConstraints);

        fragmentPanel.add(fragmentPanelCard2, "card2");

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(fragmentPanel, gridBagConstraints);

        locationPanel.setLayout(new java.awt.CardLayout());

        locationPanel.add(locationPanelCard0, "card0");

        locationPanelCard1.setLayout(new java.awt.GridBagLayout());

        lpanel.setLayout(new java.awt.GridBagLayout());

        lpanel.setBorder(new javax.swing.border.TitledBorder(options.getMsg("edit_mc_location")));
        posCellRadio.setText(options.getMsg("edit_mc_pos_cell"));
        posTypes.add(posCellRadio);
        posCellRadio.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 0, 3);
        lpanel.add(posCellRadio, gridBagConstraints);

        posWindowRadio.setText(options.getMsg("edit_mc_pos_window"));
        posTypes.add(posWindowRadio);
        posWindowRadio.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(posWindowRadio, gridBagConstraints);

        posAbsoluteRadio.setText(options.getMsg("edit_mc_pos_absolute"));
        posTypes.add(posAbsoluteRadio);
        posAbsoluteRadio.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3);
        lpanel.add(posAbsoluteRadio, gridBagConstraints);

        lbX.setText(options.getMsg("edit_mc_location_x"));
        lbX.setLabelFor(xTxt);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(lbX, gridBagConstraints);

        xTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        xTxt.setPreferredSize(new java.awt.Dimension(60, 21));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(xTxt, gridBagConstraints);

        lbY.setText(options.getMsg("edit_mc_location_y"));
        lbY.setLabelFor(yTxt);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(lbY, gridBagConstraints);

        yTxt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        yTxt.setPreferredSize(new java.awt.Dimension(60, 21));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(yTxt, gridBagConstraints);

        lbLocFrom.setText(options.getMsg("edit_mc_location_from"));
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(lbLocFrom, gridBagConstraints);

        locFromCombo.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        lpanel.add(locFromCombo, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        locationPanelCard1.add(lpanel, gridBagConstraints);

        catchMouseChk.setText(options.getMsg("edit_mc_catchmouse"));
        catchMouseChk.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        locationPanelCard1.add(catchMouseChk, gridBagConstraints);

        stretchChk.setText(options.getMsg("edit_mc_stretch"));
        stretchChk.addActionListener(this);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        locationPanelCard1.add(stretchChk, gridBagConstraints);

        locationPanel.add(locationPanelCard1, "card1");

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
        gridBagConstraints.weightx = 1.0;
        gridBagConstraints.weighty = 1.0;
        gridBagConstraints.insets = new java.awt.Insets(3, 3, 3, 3);
        mainPanel.add(locationPanel, gridBagConstraints);

        add(mainPanel, java.awt.BorderLayout.CENTER);

    }//GEN-END:initComponents
    
    
    public boolean documentChangePerformed(DocumentEvent ev){
        Document doc=ev.getDocument();
        int v=0;
        for(;v<textFields.length; v++)
            if(textFields[v].getDocument()==doc)
                break;
        if(v<textFields.length)
            return eventPerformed(new EventObject(textFields[v]));
        return false;
    }
    
    public boolean eventPerformed(EventObject ev){
        if(ev!=null && ev.getSource()!=null){
            setInitializing(true);
            MediaContent oldMc=getMcClone();
            Object src=ev.getSource();            
            if(src==levelEditor)
                mc.level=levelEditor.getValue();
            else if(src==recBufferEditor)
                mc.recBuffer=recBufferEditor.getValue();
            else if(src==lengthEditor)
                mc.length=lengthEditor.getValue();
            else if(src==fileTxt){
                String s=fileTxt.getText();
                mc.mediaFileName=(s.length()>0 ? s : null);
            }
            else if(src==externalTxt){
                String s=externalTxt.getText();
                mc.externalParam=(s.length()>0 ? s : null);
            }
            else if(src==fromTxt)
                mc.from=getIntValue(fromTxt, -1);
            else if(src==toTxt)
                mc.to=getIntValue(toTxt, -1);
            else if(src==stretchChk)
                mc.stretch=stretchChk.isSelected();
            else if(src==posCellRadio){
                mc.free=false;
                mc.absLocation=null;
                syncPointValues();
                checkEnabled();
            }
            else if(src==posWindowRadio){
                mc.free=true;
                mc.absLocation=null;
                syncPointValues();
                checkEnabled();
            }
            else if(src==posAbsoluteRadio){
                mc.free=false;
                mc.absLocation=new java.awt.Point();
                syncPointValues();
                checkEnabled();
            }
            else if(src==locFromCombo)
                mc.absLocationFrom=Math.max(0, locFromCombo.getSelectedIndex());
            else if(src==xTxt && mc.absLocation!=null)
                mc.absLocation.x=getIntValue(xTxt, 0);
            else if(src==yTxt && mc.absLocation!=null)
                mc.absLocation.y=getIntValue(yTxt, 0);
            else if(src==loopChk)
                mc.loop=loopChk.isSelected();
            else if(src==autostartChk)
                mc.autoStart=autostartChk.isSelected();
            else if(src==catchMouseChk)
                mc.catchMouseEvents=catchMouseChk.isSelected();
            else if(src==findFileBtn){
                selectBtnPressed();
            }
            else if(src instanceof JToggleButton){
                Enumeration en=mediaTypes.getElements();
                int v=-1, j=0;
                while(en.hasMoreElements()){
                    JToggleButton rb=(JToggleButton)en.nextElement();
                    if(rb==src){
                        v=j;
                        break;
                    }
                    j++;
                }
                if(v>=0){
                    int currentType=mc.mediaType;
                    mc.mediaType=v;
                    if(mc.mediaType!=currentType){
                        MediaContent mc2=new MediaContent();
                        mc2.mediaType=mc.mediaType;
                        setMediaContent(mc2);
                    }
                }
            }
            checkAndFirePropertyChange(oldMc);
            setInitializing(false);
        }
        return true;
    }
    
    protected void selectBtnPressed(){
        String value=null;
        JList list=null;
        String dlgTitleKey=null;
        
        if(mc.mediaType==MediaContent.RUN_CLIC_ACTIVITY){
            list=new JList(mbe.getProjectEditor().getActivityBagEditor().getListModel());
            dlgTitleKey="edit_mc_activity_selection";
        }
        else if(mc.mediaType==MediaContent.RUN_CLIC_PACKAGE){            
            list=new JList(mbe.getProjectEditor().getActivitySequenceEditor().getTagList());
            dlgTitleKey="edit_mc_sequence_selection";
        }
        
        if(list!=null){
            JScrollPane pane=new JScrollPane(list);
            if(options.getMessages().showInputDlg(this, pane, dlgTitleKey)){
                Object o=list.getSelectedValue();
                if(o!=null)
                    value=o.toString();
            }            
        }
        else{
            int filter
            = mc.mediaType==MediaContent.PLAY_AUDIO ? Utils.ALL_SOUNDS_FF 
            : mc.mediaType==MediaContent.PLAY_MIDI ? Utils.MIDI_FF 
            : mc.mediaType==MediaContent.PLAY_VIDEO ? Utils.ALL_VIDEO_FF 
            : Utils.ALL_MULTIMEDIA_FF;
            value=MediaBagSelector.getMediaName(mc.mediaFileName, options, this, mbe, filter);
        }
        
        if(value!=null){
            mc.mediaFileName=value;
            fileTxt.setText(value);
        }
        
    }
    
    protected void checkEnabled(){
        boolean bLevel=true, bRecBuffer=false, bLength=false, bFile=false;
        boolean bExternal=false, bFrom=false, bTo=false, bStretch=false;
        boolean bLocation=false;
        boolean bLoop=false, bAutostart=true, bCatchMouse=false;
        
        int filePanelItem=0, fragmentPanelItem=0, locationPanelItem=0;
        
        switch(mc.mediaType){
            case MediaContent.PLAY_VIDEO:
                bStretch=true;
                bLocation=true;
                bCatchMouse=true;
                locationPanelItem=1;                
            case MediaContent.PLAY_AUDIO:
            case MediaContent.PLAY_MIDI:
                bFile=true;
                bFrom=true;
                bTo=true;
                bLoop=true;
                filePanelItem=1;
                fragmentPanelItem=1;
                break;
            case MediaContent.PLAY_CDAUDIO:
                break;
            case MediaContent.RECORD_AUDIO:
                bLength=true;
            case MediaContent.PLAY_RECORDED_AUDIO:
                bRecBuffer=true;
                filePanelItem=2;
                break;
            case MediaContent.RUN_CLIC_ACTIVITY:
            case MediaContent.RUN_CLIC_PACKAGE:
            case MediaContent.RUN_EXTERNAL:
                bExternal=true;
            case MediaContent.URL:
                bFile=true;
                bLevel=false;
                filePanelItem=1;
                fragmentPanelItem=2;
                break;
            case MediaContent.EXIT:
            case MediaContent.RETURN:
                bLevel=false;
                break;
            default:
                bLevel=false;
                break;
        }
        
        levelEditor.setEnabled(bLevel);
        recBufferEditor.setEnabled(bRecBuffer);
        lengthEditor.setEnabled(bLength);
        fileTxt.setEnabled(bFile);
        findFileBtn.setEnabled(bFile);
        externalTxt.setEnabled(bExternal);
        fromTxt.setEnabled(bFrom);
        toTxt.setEnabled(bTo);
        stretchChk.setEnabled(bStretch);
        posCellRadio.setEnabled(bLocation);
        posWindowRadio.setEnabled(bLocation);
        posAbsoluteRadio.setEnabled(bLocation);
        locFromCombo.setEnabled(bLocation && mc.absLocation!=null);
        xTxt.setEnabled(bLocation && mc.absLocation!=null);
        yTxt.setEnabled(bLocation && mc.absLocation!=null);
        loopChk.setEnabled(bLoop);
        autostartChk.setEnabled(bAutostart);
        catchMouseChk.setEnabled(bCatchMouse);
        
        CardLayout cl=(CardLayout)filePanel.getLayout();
        cl.show(filePanel, "card"+Integer.toString(filePanelItem));
        if(filePanelItem==1){
            String s
            = mc.mediaType==MediaContent.RUN_CLIC_ACTIVITY ? "edit_mc_activity" 
            : mc.mediaType==MediaContent.RUN_CLIC_PACKAGE ? "edit_mc_sequence"
            : mc.mediaType==MediaContent.URL ? "edit_mc_url"
            : "edit_mc_file";            
            lbFile.setText(options.getMsg(s));
            
            boolean b=(mc.mediaType!=MediaContent.URL && mc.mediaType!=MediaContent.RUN_EXTERNAL);
            findFileBtn.setVisible(b);
            filePanel.revalidate();
        }
        
        cl=(CardLayout)fragmentPanel.getLayout();
        cl.show(fragmentPanel, "card"+Integer.toString(fragmentPanelItem));
        if(fragmentPanelItem==2){            
            String s= 
            mc.mediaType==MediaContent.RUN_CLIC_ACTIVITY || mc.mediaType==MediaContent.RUN_CLIC_PACKAGE 
            ? "edit_mc_project" : "edit_mc_externalParam";            
            lbExternal.setText(options.getMsg(s));
            fragmentPanel.revalidate();
        }
        
        cl=(CardLayout)locationPanel.getLayout();
        cl.show(locationPanel, "card"+Integer.toString(locationPanelItem));        
    }
    
    private void syncPointValues(){
        java.awt.Point p=mc.absLocation;
        if(p==null)
            p=new java.awt.Point();
        xTxt.setText(Integer.toString(p.x));
        yTxt.setText(Integer.toString(p.y));
        locFromCombo.setSelectedIndex(mc.absLocationFrom);
    }
    
    protected int getIntValue(JTextField txf, int defaultValue){
        String s=txf.getText();
        int result=defaultValue;
        try{
            result=Integer.parseInt(s);
        } catch(Exception ex){
        }
        return result;
    }
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JCheckBox autostartChk;
    private javax.swing.JCheckBox catchMouseChk;
    private javax.swing.JTextField externalTxt;
    private javax.swing.JPanel filePanel;
    private javax.swing.JTextField fileTxt;
    private javax.swing.JButton findFileBtn;
    private javax.swing.JPanel fragmentPanel;
    private javax.swing.JTextField fromTxt;
    private javax.swing.JLabel lbExternal;
    private javax.swing.JLabel lbFile;
    private javax.swing.JLabel lbFrom;
    private javax.swing.JLabel lbLength;
    private javax.swing.JLabel lbLevel;
    private javax.swing.JLabel lbLocFrom;
    private javax.swing.JLabel lbRecbuffer;
    private javax.swing.JLabel lbTo;
    private javax.swing.JLabel lbX;
    private javax.swing.JLabel lbY;
    private edu.xtec.jclic.beans.SmallIntEditor lengthEditor;
    private edu.xtec.jclic.beans.SmallIntEditor levelEditor;
    private javax.swing.JComboBox locFromCombo;
    private javax.swing.JPanel locationPanel;
    private javax.swing.JCheckBox loopChk;
    private javax.swing.JPanel mainPanel;
    private javax.swing.JPanel mediaTypePanel;
    private javax.swing.ButtonGroup mediaTypes;
    private javax.swing.JRadioButton posAbsoluteRadio;
    private javax.swing.JRadioButton posCellRadio;
    private javax.swing.ButtonGroup posTypes;
    private javax.swing.JRadioButton posWindowRadio;
    private edu.xtec.jclic.beans.SmallIntEditor recBufferEditor;
    private javax.swing.JCheckBox stretchChk;
    private javax.swing.JTextField toTxt;
    private javax.swing.JToggleButton toggleType01;
    private javax.swing.JToggleButton toggleType02;
    private javax.swing.JToggleButton toggleType03;
    private javax.swing.JToggleButton toggleType04;
    private javax.swing.JToggleButton toggleType05;
    private javax.swing.JToggleButton toggleType06;
    private javax.swing.JToggleButton toggleType07;
    private javax.swing.JToggleButton toggleType08;
    private javax.swing.JToggleButton toggleType09;
    private javax.swing.JToggleButton toggleType10;
    private javax.swing.JToggleButton toggleType11;
    private javax.swing.JToggleButton toggleType12;
    private javax.swing.JTextField xTxt;
    private javax.swing.JTextField yTxt;
    // End of variables declaration//GEN-END:variables
    
    private static HashMap panels=new HashMap();
    public static MediaContent getMediaContent(MediaContent initialMc, Component parent, Options options, MediaBagEditor mbe){
        MediaContent result=null;
        Messages msg=options.getMessages();
        MediaContentEditor mce=(MediaContentEditor)panels.get(options);
        if(mce==null){
            mce=new MediaContentEditor(options, initialMc, mbe);
            panels.put(options, mce);
        } else{
            mce.setMediaBagEditor(mbe);
            mce.setMediaContent(initialMc);
        }
        if(msg.showInputDlg(parent, mce, "edit_mc_title") && mce.check(parent))
            result=mce.getMc();
        return result;
    }
    
    public static boolean nameChanged(MediaContent mc, int type, String oldName, String newName){
        boolean result=false;
        if((type & (Constants.T_MEDIA | Constants.T_SEQUENCE | Constants.T_URL))!=0
        && oldName.equals(mc.mediaFileName)){
            mc.mediaFileName=newName;
            result=true;
        }
        return result;
    }    
}

Generated by  Doxygen 1.6.0   Back to index