summaryrefslogtreecommitdiffstats
path: root/kdejava/koala/examples/kscribble/KScribbleDoc.java
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit90825e2392b2d70e43c7a25b8a3752299a933894 (patch)
treee33aa27f02b74604afbfd0ea4f1cfca8833d882a /kdejava/koala/examples/kscribble/KScribbleDoc.java
downloadtdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz
tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kdejava/koala/examples/kscribble/KScribbleDoc.java')
-rw-r--r--kdejava/koala/examples/kscribble/KScribbleDoc.java300
1 files changed, 300 insertions, 0 deletions
diff --git a/kdejava/koala/examples/kscribble/KScribbleDoc.java b/kdejava/koala/examples/kscribble/KScribbleDoc.java
new file mode 100644
index 00000000..d51af4e1
--- /dev/null
+++ b/kdejava/koala/examples/kscribble/KScribbleDoc.java
@@ -0,0 +1,300 @@
+import java.util.*;
+
+import org.kde.qt.*;
+import org.kde.koala.*;
+
+/** KScribbleDoc provides a document object for a document-view model.
+ *
+ * The KScribbleDoc class provides a document object that can be used in conjunction with the classes JavaApiTestApp and KScribbleView
+ * 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 KScribbleView objects. Also, KScribbleDoc 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 KScribbleDoc extends QObject {
+
+ /** the list of the views currently connected to the document */
+ private ArrayList pViewList;
+ private String m_title;
+ private String m_filename;
+ private QSize size;
+ private QPen pen;
+ public QPointArray polyline;
+ public KPixmap buffer;
+
+ /** the modified flag of the current document */
+ private boolean modified;
+ private KURL doc_url;
+
+
+ public KScribbleDoc() {
+
+ pViewList = new ArrayList();
+ }
+
+ void addView(KScribbleView view) {
+ pViewList.add(view);
+ changedViewList();
+ }
+
+ void removeView(KScribbleView view) {
+ pViewList.remove(view);
+ if(!pViewList.isEmpty())
+ changedViewList();
+ else
+ deleteContents();
+ }
+
+ void changedViewList(){
+
+ KScribbleView w;
+ if(pViewList.size() == 1){
+ w=(KScribbleView)pViewList.get(0);
+ w.setCaption(m_title);
+ }
+ else{
+ int i = 1;
+ Iterator it = pViewList.iterator();
+ while(it.hasNext()) {
+ w = (KScribbleView)it.next();
+ w.setCaption(m_title + ":"+ i++);
+
+ }
+ }
+ }
+
+ boolean isLastView() {
+ return (pViewList.size() == 1);
+ }
+
+
+ void updateAllViews(KScribbleView sender) {
+ KScribbleView w;
+ Iterator it = pViewList.iterator();
+ while(it.hasNext()) {
+ w = (KScribbleView)it.next();
+ w.update(sender);
+
+ }
+
+ }
+
+ void setPathName(String name) {
+ m_filename=name;
+ m_title= new QFileInfo(name).fileName();
+ }
+
+ String pathName() {
+ return m_filename;
+ }
+
+ /** returns the current pen in use */
+ QPen currentPen() {
+ return pen;
+ }
+
+ /** returns the pen color */
+ int penWidth() {
+ return pen.width();
+ }
+
+ /** returns the pen color */
+ QColor penColor(){
+ return pen.color();
+ }
+
+ /** sets the pen width */
+ void setPenWidth( int w ){
+ pen.setWidth( w );
+ }
+
+ /** sets the pen color */
+ void setPenColor( QColor c ){
+ pen.setColor( c );
+ }
+
+ /** sets the pen style by a second toolbar */
+// void setPenStyle( PenStyle s) {
+// pen.setStyle(s);
+// }
+
+ void setTitle(String title) {
+
+ m_title=title;
+ }
+
+ String title() {
+ return m_title;
+ }
+
+ /** sets the pixmap contents. Used by KScribbleApp
+ to create a new document by drop events */
+ void setPixmap(KPixmap pix) {
+ buffer=pix;
+ };
+ void resizeDocument(QSize m_size) {
+ size=m_size;
+ };
+
+ void closeDocument() {
+ KScribbleView w;
+ if(!isLastView()) {
+ Iterator it = pViewList.iterator();
+ while(it.hasNext()) {
+ w = (KScribbleView)it.next();
+ if (!w.close())
+ break;
+
+ }
+
+ }
+ if(isLastView()) {
+ w= (KScribbleView)pViewList.get(0);
+ w.close();
+ }
+ }
+
+ boolean newDocument() {
+ /////////////////////////////////////////////////
+ // TODO: Add your document initialization code here
+ size=new QSize(300,200 );
+ pen= new QPen();
+ pen.setColor(Qt.black());
+ pen.setWidth(3);
+ polyline= new QPointArray(3);
+ if (buffer == null) {
+ buffer = new KPixmap();
+ }
+ buffer.resize(size);
+ buffer.fill( Qt.white() );
+ /////////////////////////////////////////////////
+ modified=false;
+ return true;
+ }
+
+ public boolean openDocument(String filename, String format) {
+
+ QFile f = new QFile( filename );
+ // if ( !f.open( IO_ReadOnly ) )
+ // return false;
+ /////////////////////////////////////////////////
+ // TODO: Add your document opening code here
+ if(!buffer.load( filename, format, 0))
+ return false;
+ size=buffer.size();
+ /////////////////////////////////////////////////
+ // f.close();
+
+ modified=false;
+ m_filename=filename;
+ m_title=new QFileInfo(f).fileName();
+ return true;
+ }
+
+ boolean saveDocument(String filename) {
+ return saveDocument(filename,"") ;
+ }
+
+ /** returns the first view instance */
+ KScribbleView firstView(){
+ return (KScribbleView) pViewList.get(0);
+ };
+
+ boolean saveDocument(String filename, String format /*=0*/) {
+ QFile f = new QFile( filename );
+ // if ( !f.open( IO_WriteOnly ) )
+ // return false;
+
+ /////////////////////////////////////////////////
+ // TODO: Add your document saving code here
+ if(!buffer.save( filename, format ))
+ return false;
+ /////////////////////////////////////////////////
+
+ // f.close();
+
+ modified=false;
+ m_filename=filename;
+ m_title=new QFileInfo(f).fileName();
+ return true;
+ }
+
+ void deleteContents() {
+ /////////////////////////////////////////////////
+ // TODO: Add implementation to delete the document contents
+ buffer.fill( Qt.white() );
+ /////////////////////////////////////////////////
+
+ }
+
+ boolean isModified() {
+ return modified;
+ }
+
+ void setModified() {
+ modified = true;
+ }
+
+ boolean canCloseFrame(KScribbleView pFrame) {
+ if(!isLastView())
+ return true;
+
+ boolean ret=false;
+ if(isModified()) {
+ String saveName = new String();
+ switch(KMessageBox.warningYesNoCancel(pFrame, i18n("The current file has been modified.\n" +
+ "Do you want to save it?"),title()))
+ {
+ case KMessageBox.Yes:
+ if(title().indexOf(i18n("Untitled")) > 0) {
+ saveName= KFileDialog.getSaveFileName(QDir.currentDirPath(),
+ i18n("*|All files"), pFrame, i18n("Save as..."));
+ if(saveName == null || saveName.length() == 0)
+ return false;
+ }
+ else
+ saveName=pathName();
+
+ if(!saveDocument(saveName)) {
+ switch(KMessageBox.warningYesNo(pFrame,i18n("Could not save the current document !\n" +
+ "Close anyway ?"), i18n("I/O Error !")))
+ {
+ case KMessageBox.Yes:
+ ret=true;
+ case KMessageBox.No:
+ ret=false;
+ }
+ }
+ else
+ ret=true;
+ break;
+ case KMessageBox.No:
+ ret=true;
+ break;
+ case KMessageBox.Cancel:
+ default:
+ ret=false;
+ break;
+ }
+ }
+ else
+ ret=true;
+
+ return ret;
+ }
+
+ /** get the document size */
+ QSize docSize() {
+ return size;
+ }
+
+ void editClearAll() {
+ deleteContents();
+ setModified();
+ updateAllViews(null);
+
+ }
+
+}