class Tabs(Sink): def __init__(self): Sink.__init__(self) self.fTabs = TabPanel() self.fTabs.addTabListener(self) self.fTabs.add( self.createImage(self.baseURL() + "rembrandt/JohannesElison.jpg"), "1634") self.fTabs.add( self.createImage(self.baseURL() + "rembrandt/SelfPortrait1640.jpg"), "1640") self.fTabs.add( self.createImage(self.baseURL() + "rembrandt/LaMarcheNocturne.jpg"), "1642") self.fTabs.add( self.createImage(self.baseURL() + "rembrandt/TheReturnOfTheProdigalSon.jpg"), "1662") self.fTabs.add( self.createImage(self.baseURL() + "rembrandt/TheReturnOfTheProdigalSon.jpg"), "1662 (disabled)") self.fTabs.selectTab(0) self.fTabs.setWidth("100%") self.fTabs.setHeight("100%") self.initWidget(self.fTabs) def onShow(self): pass def createImage(self, imageUrl): image = Image(imageUrl) image.setStyleName("ks-images-Image") p = VerticalPanel() p.setHorizontalAlignment(HasAlignment.ALIGN_CENTER) p.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) p.add(image) return p def onBeforeTabSelected(self, sender, tabIndex): # Returning False disables the tab. if tabIndex == 4: return False return True def onTabSelected(self, sender, tabIndex): bar = self.fTabs.getTabBar() if tabIndex == 0: bar.getTabWidget(0).setText('1634 (selected)') else: bar.getTabWidget(0).setText('1634 (not selected)')
class Tabs(Sink): def __init__(self): Sink.__init__(self) self.fTabs = TabPanel() self.fTabs.addTabListener(self) self.fTabs.add(self.createImage(self.baseURL() + "rembrandt/JohannesElison.jpg"), "1634") self.fTabs.add(self.createImage(self.baseURL() + "rembrandt/SelfPortrait1640.jpg"), "1640") self.fTabs.add(self.createImage(self.baseURL() + "rembrandt/LaMarcheNocturne.jpg"), "1642") self.fTabs.add(self.createImage(self.baseURL() + "rembrandt/TheReturnOfTheProdigalSon.jpg"), "1662") self.fTabs.add(self.createImage(self.baseURL() + "rembrandt/TheReturnOfTheProdigalSon.jpg"), "1662 (disabled)") self.fTabs.selectTab(0) self.fTabs.setWidth("100%") self.fTabs.setHeight("100%") self.initWidget(self.fTabs) def onShow(self): pass def createImage(self, imageUrl): image = Image(imageUrl) image.setStyleName("ks-images-Image") p = VerticalPanel() p.setHorizontalAlignment(HasAlignment.ALIGN_CENTER) p.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE) p.add(image) return p def onBeforeTabSelected(self, sender, tabIndex): # Returning False disables the tab. if tabIndex == 4: return False return True def onTabSelected(self, sender, tabIndex): bar = self.fTabs.getTabBar() if tabIndex == 0: bar.getTabWidget(0).setText('1634 (selected)') else: bar.getTabWidget(0).setText('1634 (not selected)')
class HardwareList(DropWidget, DragContainer, VerticalPanel): def __init__(self): VerticalPanel.__init__(self, StyleName='drophere') DropWidget.__init__(self) DragContainer.__init__(self) def changeTexts(self): for category in self.tabs.getChildren(): category.changeTexts() for i in range(1, self.tabs.getTabBar().panel.getWidgetCount() - 1): self.tabs.getTabBar().panel.getWidget( i).getFocusablePanel().getWidget().changeTexts() def onLoad(self): self.tabs = TabPanel(FlowTabBar()) self.tabs.getTabBar().addStyleName('shortcuts') self.tabs.getDeckPanel().addStyleName('blockDrawer') #------------------------------------------------------------------------------------------ self.input = CategoriesHardware.Input() self.tabs.add(self.input, CategoriesHardware.TabTitle(_('Input'), 'input_btn')) #------------------------------------------------------------------------------------------ self.output = CategoriesHardware.Output() self.tabs.add(self.output, CategoriesHardware.TabTitle(_('Output'), 'output_btn')) #------------------------------------------------------------------------------------------ self.tabs.selectTab(0) panel = Element(Element=DOM.createDiv(), Width='100%', Height='100%') panel.append(self.tabs) #------------------------------------------------------------------------------------------ self.trashCan = Widget(Element=DOM.createDiv(), StyleName='trashCanClose') panel.append(self.trashCan) self.add(panel) #------------------------------------------------------------------------------------------ bottom = Element(Element=DOM.createDiv(), StyleName='drawer_bottom') resize = ResizeWidget(self.parent, 200, 600) resize.addStyleName('float_right') bottom.append(resize) self.add(bottom) self.setCellHeight(bottom, '20px') def reload(self): pass def onDragStart(self, event): setDragStartPosition(event) def onDragEnd(self, event): getWorkspace().setMovingBlock(None) def onDragOver(self, event): if getWorkspace().getMovingBlock() is None: return dt = event.dataTransfer dt.dropEffect = 'copy' if hasattr(getWorkspace().getMovingBlock(), 'original'): if not getWorkspace().getMovingBlock().original: self.addStyleName('dragover') self.trashCan.setStyleName('trashCanOpen') DOM.eventPreventDefault(event) def onDragLeave(self, event): dt = event.dataTransfer dt.dropEffect = 'none' if hasattr(getWorkspace().getMovingBlock(), 'original'): if not getWorkspace().getMovingBlock().original: self.removeStyleName('dragover') self.trashCan.setStyleName('trashCanClose trashCanCloseFadeIn') def onDrop(self, event): if getWorkspace().getMovingBlock() is None: return self.removeStyleName('dragover') if hasattr(getWorkspace().getMovingBlock(), 'original'): if not getWorkspace().getMovingBlock().original: getWorkspace().getMovingBlock().removeFromParent() del hardwares[getWorkspace().getMovingBlock().getCompleteText( )] # remove da lista de componentes getWorkspace().setMovingBlock(None) from edu.uca.util.Serializable import stateChange stateChange() self.trashCan.setStyleName("trashCanClose") DOM.eventPreventDefault(event)