Ejemplo n.º 1
0
 def __init__(self,h):
     from javafx.scene.control import TableView
     self.ctrl = TableView()
     self.Initialize(h)
     if h.get('columns'): self.SetColumn(h['columns'])
     if h.get('widths'): self.SetColumnWidth(h['widths']) 
     if h.get('rwidths'): self.SetColumnWidthPercent(h['rwidths']) 
     if h.get('aligns'): self.SetColumnAlign(h['aligns']) 
     if h.get('handler'): self.ctrl.getSelectionModel().selectedItemProperty().addListener(h['handler'])
Ejemplo n.º 2
0
class EzTableView(EzControl):
    def __init__(self,h):
        from javafx.scene.control import TableView
        self.ctrl = TableView()
        self.Initialize(h)
        if h.get('columns'): self.SetColumn(h['columns'])
        if h.get('widths'): self.SetColumnWidth(h['widths']) 
        if h.get('rwidths'): self.SetColumnWidthPercent(h['rwidths']) 
        if h.get('aligns'): self.SetColumnAlign(h['aligns']) 
        if h.get('handler'): self.ctrl.getSelectionModel().selectedItemProperty().addListener(h['handler'])
    def SetColumn(self,labels):
        from javafx.scene.control import TableColumn
        for label in labels: self.AddColumn(label)
    def AddColumn(self,label):
        from javafx.scene.control import TableColumn
        index = self.ctrl.getColumns().size()
        column = TableColumn(label)
        column.setCellValueFactory(lambda row : row.getValue().values[index])
        self.ctrl.getColumns().add(column);
    def AddRow(self,row):
        self.ctrl.getItems().add(FxTableRow(row))
    def SetColumnWidth(self,widths):
        from javafx.scene.control import TableView
        self.ctrl.setColumnResizePolicy( TableView.UNCONSTRAINED_RESIZE_POLICY )
        for i in range(len(widths)):
            column = self.ctrl.getColumns().get(i)
            column.setPrefWidth( widths[i] )
    def SetColumnWidthPercent(self,widths):
        from javafx.scene.control import TableView
        self.ctrl.setColumnResizePolicy( TableView.CONSTRAINED_RESIZE_POLICY )
        for i in range(len(widths)):
            column = self.ctrl.getColumns().get(i)
            column.setMaxWidth( widths[i] * 100000 )
    def SetColumnAlign(self,aligns):
        for i in range(len(aligns)):
            column = self.ctrl.getColumns().get(i)
            if aligns[i] < 0: column.setStyle( "-fx-alignment: CENTER-LEFT;")
            elif aligns[i] == 0: column.setStyle( "-fx-alignment: CENTER;")
            elif aligns[i] > 0: column.setStyle( "-fx-alignment: CENTER-RIGHT;")
    def ClearSelection(self):
        self.ctrl.getSelectionModel().clearSelection()
    def SelectFirst(self):
        self.ctrl.getSelectionModel().selectFirst()
    def SelectLast(self):
        self.ctrl.getSelectionModel().selectLast();
    def EnableMultiSelection(self):
        from javafx.scene.control import SelectionMode
        self.ctrl.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE)
    def GetSelectedIndex(self):
        return self.ctrl.getSelectionModel().getSelectedIndex()
    def GetSelectedItem(self):
        index = self.ctrl.getSelectionModel().getSelectedIndex()
        return self.ctrl.getItems().get(index).values
    def GetSelectedItems(self):
        items = []
        for item in self.ctrl.getSelectionModel().getSelectedItems():
            items.append( item.values )
        return items;
    def RemoveSelectedItems(self):
        self.ctrl.getItems().removeAll(self.ctrl.getSelectionModel().getSelectedItems());