import java.util.*; import org.kde.qt.*; import org.kde.koala.*; /** KBaseDoc provides a document object for a document-view model. * * The KBaseDoc class provides a document object that can be used in conjunction with the classes JavaApiTestApp and KBaseView * to create a document-view model for standard KDE applications based on KApplication and KMainWindow. Thereby, the document object * is created by the JavaApiTestApp instance and contains the document structure with the according methods for manipulation of the document * data by KBaseView objects. Also, KBaseDoc contains the methods for serialization of the document data from and to files. * * @author Source Framework Automatically Generated by KDevelop, (c) The KDevelop Team. * @version KDevelop version 1.2 code generation */ public class KBaseDoc extends QObject { /** the list of the views currently connected to the document */ public ArrayList pViewList; /** the modified flag of the current document */ private boolean modified; private KURL doc_url; /** Constructor for the fileclass of the application */ public KBaseDoc(QWidget parent, String name) { super(parent, name); setURL(new KURL()); if(pViewList == null) { pViewList = new ArrayList(); } // pViewList.setAutoDelete(true); } /** adds a view to the document which represents the document contents. Usually this is your main view. */ public void addView(KBaseView view) { pViewList.add(view); } /** removes a view from the list of currently connected views */ public void removeView(KBaseView view) { pViewList.remove(view); } /** sets the modified flag for the document after a modifying action on the view connected to the document.*/ public void setModified(boolean _m){ modified=_m; } public void setModified(){ modified=true; } /** returns if the document is modified or not. Use this to determine if your document needs saving by the user on closing.*/ public boolean isModified(){ return modified; } /** sets the URL of the document */ public void setURL(KURL url) { doc_url=url; } /** returns the KURL of the document */ public KURL URL() { return doc_url; } /** calls repaint() on all views connected to the document object and is called by the view by which the document has been changed. * As this view normally repaints itself, it is excluded from the paintEvent. */ public void slotUpdateAllViews(KBaseView sender) { KBaseView w; if(pViewList != null) { Iterator it = pViewList.iterator(); while(it.hasNext()) { w=(KBaseView)it.next(); if(w!=sender) w.repaint(); } } } /** "save modified" - asks the user for saving if the document is modified */ public boolean saveModified() { boolean completed=true; if(modified) { KBase win=(KBase ) parent(); int want_save = KMessageBox.warningYesNoCancel(win, tr("Warning"), tr("The current file has been modified.\n" + "Do you want to save it?")); switch(want_save) { case 1: if (doc_url.fileName() == tr("Untitled")) { win.slotFileSaveAs(); } else { saveDocument(URL()); }; deleteContents(); completed=true; break; case 2: setModified(false); deleteContents(); completed=true; break; case 3: completed=false; break; default: completed=false; break; } } return completed; } /** closes the acutal document */ public void closeDocument() { deleteContents(); } /** initializes the document generally */ public boolean newDocument() { ///////////////////////////////////////////////// // TODO: Add your document initialization code here ///////////////////////////////////////////////// modified=false; doc_url.setFileName(tr("Untitled")); return true; } /** loads the document by filename and format and emits the updateViews() signal */ public boolean openDocument(KURL url, String format) { StringBuffer tmpfile = new StringBuffer(""); NetAccess.download( url, tmpfile, null ); ///////////////////////////////////////////////// // TODO: Add your document opening code here ///////////////////////////////////////////////// NetAccess.removeTempFile( tmpfile.toString() ); modified=false; return true; } public boolean openDocument(KURL url) { return openDocument(url, null); } /** saves the document under filename and format.*/ public boolean saveDocument(KURL url, String format) { ///////////////////////////////////////////////// // TODO: Add your document saving code here ///////////////////////////////////////////////// modified=false; return true; } public boolean saveDocument(KURL url) { return saveDocument(url, null); } /** deletes the document's contents */ public void deleteContents() { ///////////////////////////////////////////////// // TODO: Add implementation to delete the document contents ///////////////////////////////////////////////// } }