/*
* This file is part of muCommander, http://www.mucommander.com
* Copyright (C) 2002-2016 Maxence Bernard
*
* muCommander 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 3 of the License, or
* (at your option) any later version.
*
* muCommander 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.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.mucommander.ui.viewer;
import java.awt.Dimension;
import java.awt.Image;
import com.mucommander.commons.file.AbstractFile;
import com.mucommander.text.Translator;
import com.mucommander.ui.main.MainFrame;
/**
* A specialized <code>JFrame</code> that displays a {@link FileEditor} for a given file and provides some common
* editing functionalities. The {@link FileEditor} instance is provided by {@link EditorRegistrar}.
*
* @author Maxence Bernard, Arik Hadas
*/
public class EditorFrame extends FileFrame {
private FileEditor editor;
private final static Dimension MIN_DIMENSION = new Dimension(500, 360);
/**
* Creates a new EditorFrame to start viewing the given file.
*
* <p>This constructor has package access only, EditorFrame can to be created by
* {@link EditorRegistrar#createEditorFrame(MainFrame,AbstractFile,Image)}.
*/
EditorFrame(MainFrame mainFrame, AbstractFile file, Image icon) {
super(mainFrame, file, icon);
}
////////////////////////
// Overridden methods //
////////////////////////
@Override
public Dimension getMinimumSize() {
return MIN_DIMENSION;
}
@Override
public void dispose() {
if(editor==null || editor.askSave()) /// Returns true if the file does not have any unsaved change or if the user refused to save the changes
super.dispose();
}
@Override
protected FilePresenter createFilePresenter(AbstractFile file) throws UserCancelledException {
return editor = EditorRegistrar.createFileEditor(file, EditorFrame.this);
}
@Override
protected String getGenericErrorDialogTitle() {
return Translator.get("file_editor.edit_error_title");
}
@Override
protected String getGenericErrorDialogMessage() {
return Translator.get("file_editor.edit_error");
}
}