summaryrefslogtreecommitdiffstats
path: root/languages/java/javasupportpart.h
diff options
context:
space:
mode:
Diffstat (limited to 'languages/java/javasupportpart.h')
-rw-r--r--languages/java/javasupportpart.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/languages/java/javasupportpart.h b/languages/java/javasupportpart.h
new file mode 100644
index 00000000..e6280560
--- /dev/null
+++ b/languages/java/javasupportpart.h
@@ -0,0 +1,165 @@
+/***************************************************************************
+ * Copyright (C) 1999 by Jonas Nordin *
+ * jonas.nordin@syncom.se *
+ * Copyright (C) 2000-2001 by Bernd Gehrmann *
+ * bernd@kdevelop.org *
+ * Copyright (C) 2002-2003 by Roberto Raggi *
+ * roberto@kdevelop.org *
+ * *
+ * This program 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 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef _JAVASUPPORTPART_H_
+#define _JAVASUPPORTPART_H_
+
+#include <kdevcore.h>
+#include <kdevlanguagesupport.h>
+
+#include <kdialogbase.h>
+#include <qguardedptr.h>
+#include <qstring.h>
+#include <qwaitcondition.h>
+#include <qdatetime.h>
+
+class Context;
+class ProblemReporter;
+class BackgroundParser;
+class Catalog;
+class QLabel;
+class QProgressBar;
+class QStringList;
+class QListViewItem;
+class KListView;
+class Driver;
+
+namespace KParts { class Part; }
+namespace KTextEditor
+{
+ class Document;
+ class View;
+ class EditInterface;
+ class SelectionInterface;
+ class ViewCursorInterface;
+}
+
+class JavaSupportPart : public KDevLanguageSupport
+{
+ Q_OBJECT
+
+public:
+ JavaSupportPart( QObject *parent, const char *name, const QStringList &args );
+ virtual ~JavaSupportPart();
+
+ bool isValid() const { return m_valid; }
+
+ ProblemReporter* problemReporter() { return m_problemReporter; }
+ BackgroundParser* backgroundParser() { return m_backgroundParser; }
+
+ const QPtrList<Catalog>& catalogList() { return m_catalogList; }
+
+ bool isValidSource( const QString& fileName ) const;
+ QStringList fileExtensions( ) const;
+
+ virtual void customEvent( QCustomEvent* ev );
+
+ virtual QStringList subclassWidget(const QString& formName);
+ virtual QStringList updateWidget(const QString& formName, const QString& fileName);
+
+ KTextEditor::Document* findDocument( const KURL& url );
+
+ static KConfig *config();
+
+ virtual QString formatTag( const Tag& tag );
+ virtual QString formatModelItem( const CodeModelItem *item, bool shortDescription=false );
+ virtual void addClass();
+
+signals:
+ void fileParsed( const QString& fileName );
+
+protected:
+ virtual KDevLanguageSupport::Features features();
+ virtual KMimeType::List mimeTypes();
+ virtual QString formatClassName(const QString &name);
+ virtual QString unformatClassName(const QString &name);
+ virtual void addMethod( ClassDom klass );
+ virtual void addAttribute( ClassDom klass );
+
+private slots:
+ void activePartChanged(KParts::Part *part);
+ void partRemoved( KParts::Part* part );
+ void projectOpened();
+ void projectClosed();
+ void savedFile(const KURL &fileName);
+ void configWidget(KDialogBase *dlg);
+ void projectConfigWidget(KDialogBase *dlg);
+ void contextMenu(QPopupMenu *popup, const Context *context);
+ void addedFilesToProject(const QStringList &fileList);
+ void removedFilesFromProject(const QStringList &fileList);
+ void changedFilesInProject( const QStringList & fileList );
+ void slotProjectCompiled();
+ void setupCatalog();
+
+ void slotNewClass();
+
+ void slotNeedTextHint( int, int, QString& );
+
+ /**
+ * loads, parses and creates both classstores needed
+ */
+ void initialParse( );
+
+ /**
+ * only parses the current project
+ */
+ bool parseProject( );
+
+private:
+
+ /**
+ * checks if a file has to be parsed
+ */
+ void maybeParse( const QString& fileName );
+ void removeWithReferences( const QString& fileName );
+
+ QStringList modifiedFileList();
+ QString findSourceFile();
+ int pcsVersion();
+ void setPcsVersion( int version );
+
+ void saveProjectSourceInfo();
+
+ QString m_contextFileName;
+
+ QGuardedPtr< ProblemReporter > m_problemReporter;
+ BackgroundParser* m_backgroundParser;
+
+ KTextEditor::Document* m_activeDocument;
+ KTextEditor::View* m_activeView;
+ KTextEditor::SelectionInterface* m_activeSelection;
+ KTextEditor::EditInterface* m_activeEditor;
+ KTextEditor::ViewCursorInterface* m_activeViewCursor;
+ QString m_activeFileName;
+
+ QWaitCondition m_eventConsumed;
+ bool m_projectClosed;
+
+ QMap<QString, QDateTime> m_timestamp;
+ bool m_valid;
+
+ QPtrList<Catalog> m_catalogList;
+ Driver* m_driver;
+ QString m_projectDirectory;
+
+ ClassDom m_activeClass;
+ FunctionDom m_activeFunction;
+ VariableDom m_activeVariable;
+
+ friend class KDevJavaSupportIface;
+ friend class JavaDriver;
+};
+
+#endif