Package net.sourceforge.ganttproject.gui

Source Code of net.sourceforge.ganttproject.gui.FileChooserPageBase

package net.sourceforge.ganttproject.gui;

import java.awt.BorderLayout;
import java.awt.Component;
import java.io.File;

import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.SpringLayout;
import javax.swing.filechooser.FileFilter;


import net.sourceforge.ganttproject.gui.options.OptionsPageBuilder;
import net.sourceforge.ganttproject.gui.options.SpringUtilities;
import net.sourceforge.ganttproject.gui.options.model.GPOptionGroup;
import net.sourceforge.ganttproject.gui.projectwizard.WizardPage;
import net.sourceforge.ganttproject.language.GanttLanguage;

public abstract class FileChooserPageBase implements WizardPage {
    private JPanel myComponent;
  private TextFieldAndFileChooserComponent myChooser;
  private OptionsPageBuilder myOptionsBuilder;
  private JPanel mySecondaryOptionsComponent;
 
  protected FileChooserPageBase() {
    myOptionsBuilder = new OptionsPageBuilder();
        mySecondaryOptionsComponent = new JPanel(new BorderLayout());
  }
   
    protected abstract String getFileChooserTitle();
   
  public Component getComponent() {
        myComponent = new JPanel(new BorderLayout());
        myChooser = new TextFieldAndFileChooserComponent(GanttLanguage.getInstance().getText("file")+":",
            getFileChooserTitle()) {
            protected void onFileChosen(File file) {
              FileChooserPageBase.this.onFileChosen(file);
              super.onFileChosen(file);
            }
        };
        JComponent contentPanel = new JPanel(new BorderLayout());
        contentPanel.add(myChooser.getComponent(), BorderLayout.NORTH);
        contentPanel.add(mySecondaryOptionsComponent, BorderLayout.CENTER);
//        SpringUtilities.makeCompactGrid(contentPanel, 2, 1,
//                0, 0, 5, 5);
        myComponent.add(contentPanel, BorderLayout.NORTH);
        return myComponent;
    }

    public void setActive(boolean b) {
      GPOptionGroup[] optionGroups = getOptionGroups();
        if (b == false) {
          for (int i=0; i<optionGroups.length; i++) {
            optionGroups[i].commit();
          }
        } else {
          for (int i=0; i<optionGroups.length; i++) {
            optionGroups[i].lock();
          }
          if (mySecondaryOptionsComponent!=null){
                mySecondaryOptionsComponent.removeAll();
            }         
          //mySecondaryOptionsComponent= new JPanel(new BorderLayout());
            mySecondaryOptionsComponent.add(myOptionsBuilder.buildPlanePage(optionGroups), BorderLayout.NORTH);
            //myComponent.add(mySecondaryOptionsComponent, BorderLayout.CENTER);
            mySecondaryOptionsComponent.invalidate();
            myComponent.invalidate();
            myChooser.setFileFilter(createFileFilter());
        }
    }
   

  protected void setSelectedFile(File file) {
    myChooser.setFile(file);
  }

  protected File getSelectedFile() {
    return myChooser.getFile();
  }
 
  protected void setOptionsEnabled(boolean enabled) {
    if (mySecondaryOptionsComponent!=null) {
      setEnabledTree(mySecondaryOptionsComponent, enabled);
    }
  }
 
    private void setEnabledTree(JComponent root, boolean isEnabled) {
      UIUtil.setEnabledTree(root, isEnabled);
    }
 
   
  protected abstract FileFilter createFileFilter();

  protected abstract GPOptionGroup[] getOptionGroups();

  protected abstract void onFileChosen(File file);

}
TOP

Related Classes of net.sourceforge.ganttproject.gui.FileChooserPageBase

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.