- GroupScene* searchSceneById(int id);
- GroupScene* searchSceneByName(QString name);
- BoxItem* searchBlockItemById(int id);
- GroupItem* searchGroupItemById(int id);
- InterfaceItem* searchInterfaceItemById(int id);
-
- void removeBlock(AbstractBoxItem* item);
- void duplicateBlock(BoxItem* item);
- void duplicateInterface(InterfaceItem* item);
- void addBlock(int idCategory, int idBlock, int idScene);
- ConnectionItem *addConnection(InterfaceItem *input, InterfaceItem *output);
- void removeAllBlockConnections(AbstractBoxItem *block);
- void removeConnection(ConnectionItem *conn);
- void removeUselessGroupInterfaces();
+ // setters
+ // testers
+ // others
+ void generateVHDL(Context context) throw(Exception);
+
+ /**************************
+ * block ops
+ *************************/
+ BoxItem* addBlock(Context context, int idCategory, int idBlock, int idScene, QHash<QString,int> clkRstToGen );
+ void addClkRstGenBlock(Context context, double frequency);
+ void removeBoxItem(Context context, BoxItem* item);
+ void duplicateBoxItem(Context context, BoxItem* item);
+ void renameFunctionalBlock(Context context, BoxItem* item);
+ void generateBlockVHDL(Context context, BoxItem* item);
+ void renameGroupBlock(Context context, GroupItem* item);
+ void renameSourceBlock(Context context, SourceItem* item);
+ void removeSourceItem(Context context, SourceItem* item);
+ void duplicateSourceItem(Context context, SourceItem* item);
+
+
+ // interface ops
+ /*!
+ * \brief connectInterToGroup
+ * \param item item is always owned by a BoxItem
+ *
+ * This method is called only when the user right clicks on an InterfaceItem (that belongs
+ * to a BoxItem and if it is NOT connected to an InterfaceItem of the GroupItem) and chooses
+ * connect to group in the contextual menu.
+ * Thus, parameter item is always owned by a BoxItem
+ */
+ void connectInterToGroup(Context context, InterfaceItem* item);
+ /*!
+ * \brief removeFunctionalInterface
+ * \param item item is always owned by a BoxItem
+ *
+ * This method is called only when the user right clicks on an InterfaceItem (that belongs
+ * to a BoxItem that represents a functional block and has a multiplicity > 1) and chooses remove in the contextual menu.
+ * Thus, parameter item is always owned by a BoxItem
+ */
+ void removeFunctionalInterface(Context context, InterfaceItem* item);
+ /*!
+ * \brief removeGroupInterface
+ * \param item item is always owned by a GroupItem
+ *
+ * This method is called only when the user right clicks on an InterfaceItem (that belongs
+ * to a GroupItem and if it is connected only to an inner interface) and chooses remove in the contextual menu.
+ * Thus, parameter item is always owned by a GroupItem
+ */
+ void removeGroupInterface(Context context, InterfaceItem* item);
+ void duplicateInterfaceItem(Context context, InterfaceItem* item);
+ void showProperties(Context context, InterfaceItem *inter);
+ void renameInterface(Context context, InterfaceItem* item);
+ void showPatterns(Context context, InterfaceItem* item);
+ void showModifier(Context context, InterfaceItem* item);
+ void removeModifier(Context context, InterfaceItem* item);
+
+ // connection ops
+ bool createConnection(Context context, InterfaceItem *iface1, InterfaceItem *iface2, bool visible = true);
+ void removeAllBlockConnections(Context context, AbstractBoxItem *item);
+ void removeConnection(Context context, ConnectionItem *conn);
+
+
+ // analysis ops
+ void findGraphModifications(Context context, FunctionalBlock* block); // find modif so that block has compatible inputs
+
+ // others