package captor.projectsystem.close;
import javax.swing.JOptionPane;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import captor.lib.intl.MyIntl;
import captor.lib.util.StringUtil;
import captor.modelsystem.Model;
import captor.modelsystem.Project;
import captor.projectsystem.save.SaveProject;
/**
* @author Kicho
*
*/
public class CloseProject {
private Model model;
public CloseProject(Model model) {
this.model = model;
}
//-------------------------------------------------------------------------
public boolean closeProject() {
if ( model.getProject() == null ) {
JOptionPane.showMessageDialog(model.getGui().getCaptorWindow(), MyIntl.MSG25);
return true;
}
int status = model.getProject().getStatus();
if ( status == Project.CLOSED ) {
JOptionPane.showMessageDialog(model.getGui().getCaptorWindow(), MyIntl.MSG26);
return true;
}
else if ( status == Project.UNSAVED ) {
int res = JOptionPane.showConfirmDialog(model.getGui().getCaptorWindow(), MyIntl.MSG27, MyIntl.MSG28, JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if ( res == JOptionPane.OK_OPTION ) {
SaveProject sp = new SaveProject(model);
if ( ! sp.save() )
return false;
}
closeProject2();
}
else if ( status == Project.SAVED ) {
closeProject2();
}
model.getGui().getGuiControl().setCloseProject(true);
model.getGui().getGuiView().setClearAllViews(true);
return true;
}
//-------------------------------------------------------------------------
private void closeProject2() {
model.getProject().setStatus(Project.CLOSED);
model.getProject().setFormsType(null);
model.setProject(null);
DefaultMutableTreeNode root = (DefaultMutableTreeNode)model.getGui().getTree().getModel().getRoot();
root.removeAllChildren();
((DefaultTreeModel)model.getGui().getTree().getModel()).reload(root);
if ( model.getProject() != null ) {
JOptionPane.showMessageDialog(model.getGui().getCaptorWindow(), StringUtil.formatMessage(MyIntl.MSG29, model.getProject().getName()));
}
}
//-------------------------------------------------------------------------
}