VR-Forces 4.0.4 Class Documentation
include/vrfGuiCoreQt/shapeObjectDefinitionDialog.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00007 
00008 
00009 #pragma once
00010 
00011 #include <vrvUtil/signalslib.h>
00012 #include <vrfGuiCoreQt/vrfGuiCoreQt.h>
00013 #include <vrfGuiCoreQt/autoHideDock.h>
00014 #include <vrfGuiCoreQt/createAndEditObjectDialogInterface.h>
00015 #include <vrfGuiCoreQt/shapeObjectDefinitionWidgetUi.hpp>
00016 #include <vrvCore/DtSharedDisplayUnitsSettings.h>
00017 #include <makArchives/DtDisplayUnitsSettingsRecord.h>
00018 #include <vrvUtil/DtSignalConnectionManager.h>
00019 
00020 class DtReferenceEllipsoid;
00021 class QDialog;
00022 
00023 namespace makVrf
00024 {
00025    class DtShapeObjectDefinitionDialog;      
00026    class DtVrfObjectManipulationHandlerBaseClass;
00027 
00031    class DT_DLL_VRFGUICOREQT DtShapeObjectDefinitionDialogLogic 
00032    {
00033 
00034    public:
00035 
00037       DtShapeObjectDefinitionDialogLogic(makVrv::DtDe& de, DtShapeObjectDefinitionDialog* iface);
00038 
00040       ~DtShapeObjectDefinitionDialogLogic();
00041 
00043       virtual void createConnections();
00044 
00046       virtual void terminateConnections();
00047 
00049       virtual void processLocationEdited(int currentRow=-1);
00050 
00052       virtual void processSelectLocation(int);
00053 
00055       virtual void processAddNewPoint();
00056 
00058       virtual void processRemovePoint(int index);
00059 
00061       virtual void processObjectCreation();
00062 
00064       virtual void processObjectUpdate();
00065 
00067       virtual void processDoneRequest();
00068 
00070       virtual void processCloseRequest();
00071 
00073       virtual void processCellEdited(int, int);
00074 
00076       virtual void processCellEntered(int, int);
00077 
00079       virtual void processNamePrefixEdited();
00080 
00082       virtual void processItemSelectionChanged();
00083 
00087       virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
00088 
00089       virtual bool inGeocentric() const;
00090 
00092       virtual void setupGui();
00093 
00095       virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
00096 
00098       virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
00099 
00101       virtual void populateOverlays();
00102 
00103       virtual void populateForces();
00104       virtual void setForce(int);
00105 
00107       virtual void processAltitudeTypeChanged();
00108 
00109       virtual void attachToMouseChanged(bool b);
00110 
00111       virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
00112       virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
00113 
00114       virtual void adjustAltitudesBy(double);
00115       virtual void setAltitudesTo(DtAltitudeClampType, double);
00116 
00118       virtual void processItemAdded(int);
00119 
00122       virtual void showTerrainProfile();
00123 
00124    protected:
00125 
00126       virtual void setupLabels();
00127 
00129       virtual void closeDialog();
00130 
00132       virtual void slot_onMouseLocationChanged(const DtVector& loc);
00133 
00135       virtual void slot_onMouseAltitudeChanged(double heading);
00136 
00138       virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
00139 
00141       virtual void slot_onPlacement(const DtVector& loc);
00142 
00144       virtual void slot_onLocationAdded(const DtVector& loc);
00145 
00147       virtual void slot_onOverlayNameChanged(const std::string& name);
00148 
00150       virtual void slot_onForceChanged(int);
00151 
00152       virtual void objectCreated();
00153 
00154       virtual void updateButtons();
00155 
00156       virtual void slot_onCoordinateSystemChanged(
00157          makVrv::DtSharedDisplayUnitsSettings::CoordSys);
00158 
00159       virtual void slot_onUnitChanged(int attribute, int from);
00160 
00161       virtual void restoreLocations();
00162       virtual void backupLocations();
00163 
00165       virtual void slot_overlayAdded(const std::string&);
00166 
00168       virtual void slot_overlayRemoved(const std::string&);
00169 
00171       virtual void slot_overlayRenamed(const std::string&, const std::string&);
00172 
00173    protected:
00174 
00175       makVrv::DtDe&                  myDe;
00176       DtShapeObjectDefinitionDialog* myInterface;
00177       DtReferenceEllipsoid*         myReferenceForConversion;
00178       bool myAltitudeAllowed;
00179       makVrv::DtSharedDisplayUnitsSettings::DistanceUnits myAltitudeUnits;
00180       makVrv::DtSharedDisplayUnitsSettings::CoordSys myCoordSys;
00181       std::vector<DtGeodeticCoord> myBackupLocations;
00182       makVrv::DtSignalConnectionManager myConnectionManager;
00183    };
00184 
00185 
00189    class DT_DLL_VRFGUICOREQT DtShapeObjectDefinitionDialog : public DtAutoHideDock, public DtCreateAndEditObjectDialogInterface
00190    {
00191 
00192       Q_OBJECT
00193 
00194    public:
00195 
00197       DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const std::string title="", DtDialogInteractionMode mode=DtCreationMode);
00198 
00200       virtual ~DtShapeObjectDefinitionDialog();
00201 
00202       virtual void init(const DtEntityType&, const std::string& title, bool forPlan,
00203          DtCreateAndEditObjectDialogInterface::DtDialogInteractionMode, const DtVrfObjectManipulationManager::DtEditingType&);
00204 
00206       virtual void closeDialog();
00207 
00209       virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
00210          makVrv::DtSharedDisplayUnitsSettings::CoordSys = makArchives::DtDisplayUnitsSettingsRecord::End_CoordSys,
00211          makVrv::DtSharedDisplayUnitsSettings::DistanceUnits = makArchives::DtDisplayUnitsSettingsRecord::End_DistanceUnits);
00212 
00214       virtual void addLocation(const DtVector& loc, int index = -1);
00215 
00217       virtual void removePoint(int);
00218 
00220       virtual void insertLocation(int index, const DtVector& loc);
00221 
00223       virtual void selectLocation(int index);
00224 
00226       virtual DtGeodeticCoord getLocation(int index);
00227 
00229       virtual QString getName();
00230 
00232       virtual void hideDialog();
00233 
00235       virtual int selectedPointIndex() const;
00236 
00238       virtual int rowCount() const;
00239 
00241       virtual void setAltitudeAboveTerrain(bool);
00242 
00244       virtual bool altitudeAboveTerrain() const;
00245 
00247       virtual void setName(const QString& name);
00248 
00250       virtual void setNameVisible(bool flag);
00251 
00253       virtual void setTitle(const QString& title);
00254 
00256       virtual void setCreateButtonEnabled(bool flag);
00257 
00259       virtual void setCreateButtonText(const QString& text);
00260 
00262       virtual void setCreateButtonVisible(bool flag);
00263 
00265       virtual void setUpdateButtonEnabled(bool flag);
00266 
00268       virtual void setUpdateButtonVisible(bool flag);
00269 
00271       virtual void setAllowOverlaySelection(bool flag);
00272 
00274       virtual void setUpdateButtonText(const QString& text);
00275 
00277       virtual void setDoneButtonEnabled(bool flag);
00278 
00280       virtual void setDoneButtonVisible(bool flag);
00281 
00283       virtual void setUpButtonVisible(bool flag);
00284 
00286       virtual void setDownButtonVisible(bool flag);
00287 
00289       virtual void setAddPointButtonVisible(bool flag);
00290 
00292       virtual void setAddPointButtonEnabled(bool flag);
00293 
00295       virtual void setAdjustAltitudeButtonVisible(bool flag);
00296 
00298       virtual void setAdjustAltitudeButtonEnabled(bool flag);
00299 
00301       virtual void setRemovePointButtonVisible(bool flag);
00302 
00304       virtual void setRemovePointButtonEnabled(bool flag);
00305 
00307       virtual void setControlButtonsVisible(bool flag);
00308 
00310       virtual void setAttachObjectToMouse(bool);
00311 
00313       virtual DtDialogInteractionMode interactionMode();
00314 
00316       virtual void populate(const makVrv::DtUniqueID&);
00317 
00319       virtual void populate(const DtCreateObjectCommand* cmd);
00320 
00322       virtual bool blockSignals(bool);
00323 
00325       virtual void addOverlay(const QString& name);
00326 
00328       virtual void removeOverlay(const QString& name);
00329 
00331       virtual void renameOverlay(const QString& oldName, const QString& newName);
00332 
00334       virtual void setOverlay(const QString& name);
00335 
00337       virtual void clearOverlays();
00338 
00340       virtual void populateOverlays();
00341 
00343       virtual void populateForces();
00344 
00345       virtual void setAltitudeAboveTerrain(int row, double alt);
00346 
00347       bool attachedToMouse() const;
00348 
00351       virtual double altitude(int) const;
00352 
00354       virtual void setAltitude(int, double, bool blocked = false);
00355 
00357       virtual void setAltitudeAllowed(bool);
00358 
00360       virtual void setShowForces(bool);
00361 
00363       virtual void setReadOnly(bool);
00364 
00366       virtual void setReadOnly(int, bool);
00367 
00368       virtual void setXLabel(const QString&);
00369       virtual void setYLabel(const QString&);
00370       virtual void setZLabel(const QString&);
00371       virtual void adjustAltitudeAdjustmentDialogLabels();
00372 
00373       virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
00374          makVrv::DtSharedDisplayUnitsSettings::DistanceUnits);
00375 
00377       virtual void refreshLocs();
00378       virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
00379 
00380       virtual void clearSelection();
00381 
00383       virtual void clearForces();
00384 
00386       virtual void addForce(const QString& name, int force);
00387 
00389       virtual void setForce(int force);
00390 
00392       virtual void addExtension(QWidget*);
00393 
00395       virtual void removeExtension(QWidget*);
00396 
00398       virtual void showPropertiesDialog(bool);
00399 
00401       virtual void setTerrainProfileButtonEnabled(bool);
00402       virtual void setTerrainProfileButtonVisible(bool);
00403 
00404     protected:
00405 
00409       virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
00410          makVrv::DtSharedDisplayUnitsSettings::CoordSys = makArchives::DtDisplayUnitsSettingsRecord::End_CoordSys,
00411          makVrv::DtSharedDisplayUnitsSettings::DistanceUnits = makArchives::DtDisplayUnitsSettingsRecord::End_DistanceUnits);
00412 
00414       virtual void setupGui();
00415 
00417       virtual void setupConnections();
00418 
00420       virtual void closeEvent(QCloseEvent *event);
00421 
00426       virtual QDialog* createAltitudeAdjustmentDialog();
00427 
00429       virtual DtShapeObjectDefinitionDialogLogic* createLogic();
00430 
00431    public slots:
00432 
00434       virtual void slot_onShapeLocationsCellChanged(int, int);
00435 
00437       virtual void slot_altitudeTypeChanged();
00438 
00439    protected slots:
00440       virtual void slot_itemSelectionChanged();
00441       virtual void slot_onCreateButtonClicked();         
00442       virtual void slot_onUpdateButtonClicked();
00443       virtual void slot_onDoneButtonClicked();
00444       virtual void slot_onNamePrefixEdited();         
00445       virtual void slot_closePressed();
00446       virtual void slot_onBtnMoveDownClicked();
00447       virtual void slot_onBtnMoveUpClicked();
00448       virtual void slot_onBtnAddPointClicked();
00449       virtual void slot_onBtnRemovePointClicked();
00450       virtual void slot_onShapeLocationsCellEntered( int, int);
00451       virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
00452       virtual void slot_onForceComboCurrentIndexChanged(int index);
00453       virtual void slot_attachedToMouseChanged();
00454       virtual void slot_onAdjustAltitudeClicked();
00455       virtual void slot_onShowTerrainProfile();
00456 
00457    public:
00458 
00459       Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
00460 
00461    protected:
00462 
00463       DtShapeObjectDefinitionDialogLogic*  myLogic;
00464       DtDialogInteractionMode myInteractionMode;
00465       bool myBlockSignals;
00466       bool myAltitudeAllowed;
00467       QDialog* myAltitudeAdjustmentDialog;
00468       QWidget* myParent;
00469    };
00470 
00471    class DT_DLL_VRFGUICOREQT DtShapeObjectDefinitionDialogCreator : public DtVrfObjectModifierDialogCreator
00472    {
00473    public:
00474       virtual DtCreateAndEditObjectDialogInterface* create(makVrv::DtDe& de, QWidget* parent, 
00475          DtEntityType entityType, const std::string title="",  DtCreationSignalType signalCreate = DtNoCreationSignal,
00476          DtCreateAndEditObjectDialogInterface::DtDialogInteractionMode mode=DtCreateAndEditObjectDialogInterface::DtCreationMode, 
00477          const DtVrfObjectManipulationManager::DtEditingType& editType=DtVrfObjectManipulationManager::Context);
00478    };
00479 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)