Package org.eclipse.sapphire

Examples of org.eclipse.sapphire.Listener


        this.contentOutline = new MasterDetailsContentOutline( this );
        this.contentOutline.getRoot();
       
        this.contentOutline.attach
        (
            new Listener()
            {
               @Override
                public void handle( final Event event )
                {
                    if( event instanceof MasterDetailsContentOutline.SelectionChangedEvent )
View Full Code Here


       
        final ListSelectionService listSelectionService = this.listPropertyEditorPart.service( ListSelectionService.class );
       
        final MutableReference<Element> selectedElementRef = new MutableReference<Element>();

        final Listener listSelectionServiceListener = new Listener()
        {
            @Override
            public void handle( final Event event )
            {
                final List<Element> selectedElements = listSelectionService.selection();
                final Element selectedElement = ( selectedElements.isEmpty() ? null : selectedElements.get( 0 ) );
               
                if( selectedElementRef.get() != selectedElement )
                {
                    selectedElementRef.set( selectedElement );
                   
                    final Runnable inputChangeOperation = new Runnable()
                    {
                        public void run()
                        {
                            changePage( selectedElement );
                        }
                    };
                   
                    Display.getDefault().syncExec( inputChangeOperation );
                }
            }
        };
       
        listSelectionService.attach( listSelectionServiceListener );
       
        attach
        (
            new Listener()
            {
                @Override
                public void handle( final Event event )
                {
                    if( event instanceof DisposeEvent )
View Full Code Here

        super.init( action, def );
       
        this.dependencies = new ArrayList<String>();
        initDependencies( this.dependencies );
       
        final Listener listener = new FilteredListener<PropertyEvent>()
        {
            @Override
            protected void handleTypedEvent( final PropertyEvent event)
            {
                refreshEnablementState();
            }
        };
       
        final Element element = getModelElement();
       
        for( String dependency : this.dependencies )
        {
            element.attach( listener, dependency );
        }
       
        refreshEnablementState();
       
        attach
        (
            new Listener()
            {
                @Override
                public void handle( final Event event )
                {
                    if( event instanceof DisposeEvent )
View Full Code Here

            catch( Exception e )
            {
                Sapphire.service( LoggingService.class ).log( e );
            }
        }
        final Listener contributorListener = new Listener()
        {
            @Override
            public void handle( final Event event )
            {
                Display.getDefault().asyncExec
View Full Code Here

            throw new IllegalStateException();
        }
       
        this.possibleValuesService = property.service( PossibleValuesService.class );
       
        this.possibleValuesServiceListener = new Listener()
        {
            @Override
            public void handle( final Event event )
            {
              CheckBoxListPropertyEditorPresentation.this.tableViewer.refresh();
            }
        };
       
        this.possibleValuesService.attach( this.possibleValuesServiceListener );

        // Create Controls
       
        final Composite mainComposite = createMainComposite( parent );
        mainComposite.setLayout( glspacing( glayout( 2, 0, 0 ), 2 ) );
       
        final PropertyEditorAssistDecorator decorator = createDecorator( mainComposite );
        decorator.control().setLayoutData( gdvalign( gd(), SWT.TOP ) );
       
        // Setting the whint in the following code is a hacky workaround for the problem
        // tracked by the following JFace bug:
        //
        // https://bugs.eclipse.org/bugs/show_bug.cgi?id=215997
        //
       
        final Composite tableComposite = new Composite( mainComposite, SWT.NONE );
        tableComposite.setLayoutData( gdwhint( gdfill(), 1 ) );
       
        final TableColumnLayout tableColumnLayout = new TableColumnLayout();
        tableComposite.setLayout( tableColumnLayout );
       
        this.tableViewer = CheckboxTableViewer.newCheckList( tableComposite, SWT.BORDER | SWT.FULL_SELECTION );
        this.table = this.tableViewer.getTable();
       
        final TableViewerColumn viewerColumn = new TableViewerColumn( this.tableViewer, SWT.NONE );
        final TableColumn column = viewerColumn.getColumn();
        column.setText( this.memberProperty.getLabel( false, CapitalizationType.TITLE_STYLE, false ) );
        tableColumnLayout.setColumnData( column, new ColumnWeightData( 1, 100, true ) );
       
        decorator.addEditorControl( mainComposite );
       
        suppressDashedTableEntryBorder( this.table );
       
        // Bind to Model
       
        final ColumnSortComparator comparator = new ColumnSortComparator()
        {
            @Override
            protected String convertToString( final Object obj )
            {
                return ( (Entry) obj ).value;
            }
        };
       
        final IStructuredContentProvider contentProvider = new IStructuredContentProvider()
        {
            private List<Entry> entries = new ArrayList<Entry>();
           
            public Object[] getElements( final Object input )
            {
                if( this.entries != null )
                {
                    for( Entry entry : this.entries )
                    {
                        entry.dispose();
                    }
                   
                    this.entries = null;
                }
               
                final Map<String,LinkedList<Element>> valueToElements = new HashMap<String,LinkedList<Element>>();
               
                for( final Element element : property() )
                {
                    final String value = readMemberProperty( element );
                    LinkedList<Element> elements = valueToElements.get( value );
                   
                    if( elements == null )
                    {
                        elements = new LinkedList<Element>();
                        valueToElements.put( value, elements );
                    }
                   
                    elements.add( element );
                }
               
                this.entries = new ArrayList<Entry>();
               
                Set<String> possibleValues;
               
                try
                {
                    possibleValues = CheckBoxListPropertyEditorPresentation.this.possibleValuesService.values();
                }
                catch( Exception e )
                {
                    Sapphire.service( LoggingService.class ).log( e );
                    possibleValues = SetFactory.empty();
                }

                for( String value : possibleValues )
                {
                    final Entry entry;
                    final LinkedList<Element> elements = valueToElements.get( value );
                   
                    if( elements == null )
                    {
                        entry = new Entry( value, null );
                    }
                    else
                    {
                        final Element element = elements.remove();
                       
                        if( elements.isEmpty() )
                        {
                            valueToElements.remove( value );
                        }
                       
                        entry = new Entry( value, element );
                    }
                   
                    this.entries.add( entry );
                }
               
                for( Map.Entry<String,LinkedList<Element>> entry : valueToElements.entrySet() )
                {
                    final String value = entry.getKey();
                   
                    for( Element element : entry.getValue() )
                    {
                        this.entries.add( new Entry( value, element ) );
                    }
                }
               
                return this.entries.toArray();
            }
           
            public void dispose()
            {
                for( Entry entry : this.entries )
                {
                    entry.dispose();
                }
               
                this.entries = null;
            }

            public void inputChanged( final Viewer viewer,
                                      final Object oldInput,
                                      final Object newInput )
            {
            }
        };
       
        this.tableViewer.setContentProvider( contentProvider );
       
        final ColumnLabelProvider labelProvider = new ColumnLabelProvider()
        {
            @Override
            public String getText( final Object element )
            {
                return ( (Entry) element ).label();
            }

            @Override
            public Image getImage( final Object element )
            {
                return ( (Entry) element ).image();
            }
           
            @Override
            public Color getForeground( final Object element )
            {
                return ( (Entry) element ).foreground();
            }
        };
       
        viewerColumn.setLabelProvider( labelProvider );
       
        final ICheckStateProvider checkStateProvider = new ICheckStateProvider()
        {
            public boolean isChecked( final Object element )
            {
                return ( (Entry) element ).selected();
            }
           
            public boolean isGrayed( final Object element )
            {
                return false;
            }
        };
       
        this.tableViewer.setCheckStateProvider( checkStateProvider );
       
        if( part.getRenderingHint( PropertyEditorDef.HINT_SHOW_HEADER, true ) == true )
        {
            this.table.setHeaderVisible( true );

            makeTableSortable
            (
                this.tableViewer,
                Collections.<TableColumn,Comparator<Object>>singletonMap( column, comparator ),
                CheckBoxListPropertyEditorPresentation.this.possibleValuesService.ordered() ? null : column
            );
        }
       
        final ListSelectionService selectionService = part.service( ListSelectionService.class );
       
        this.tableViewer.addSelectionChangedListener
        (
            new ISelectionChangedListener()
            {
                public void selectionChanged( final SelectionChangedEvent event )
                {
                    selectionService.select( getSelectedElements() );
                }
            }
        );
       
        final Listener selectionServiceListener = new FilteredListener<ListSelectionChangedEvent>()
        {
            @Override
            protected void handleTypedEvent( final ListSelectionChangedEvent event )
            {
                setSelectedElements( event.after() );
View Full Code Here

               
                if( this.elementImageService != null )
                {
                    if( this.elementImageServiceListener == null )
                    {
                        this.elementImageServiceListener = new Listener()
                        {
                            @Override
                            public void handle( final Event event )
                            {
                                CheckBoxListPropertyEditorPresentation.this.tableViewer.update( Entry.this, null );
View Full Code Here

           
            loadTreeState();
           
            attach
            (
                new Listener()
                {
                    @Override
                    public void handle( final Event event )
                    {
                        if( event instanceof NodeExpandedStateChangedEvent || event instanceof SelectionChangedEvent )
View Full Code Here

 
  public ActionSystemPartBridge( final SapphireActionSystemPart sapphireActionSystemPart )
  {
    this.sapphireActionSystemPart = sapphireActionSystemPart;
   
    this.listener = new Listener()
    {
            @Override
            public void handle( final Event event )
            {
                if( event instanceof SapphireActionSystemPart.EnablementChangedEvent )
View Full Code Here

            this.modelElement = getModelElement();
        }
       
        this.expanded = false;
       
        this.childPartListener = new Listener()
        {
            @Override
            public void handle( final Event event )
            {
                if( event instanceof PartValidationEvent || event instanceof PartVisibilityEvent )
                {
                    refreshValidation();
                }
            }
        };
       
        // Label
       
        this.labelFunctionResult = initExpression
        (
            this.definition.getLabel().content(),
            String.class,
            null,
            new Runnable()
            {
                public void run()
                {
                    broadcast( new LabelChangedEvent( MasterDetailsContentNodePart.this ) );
                }
            }
        );
       
        // Image
       
        final Literal defaultImageLiteral = Literal.create( ( this.definition.getChildNodes().isEmpty() ? IMG_LEAF_NODE : IMG_CONTAINER_NODE ) );
        final Function imageFunction = this.definition.getImage().content();
       
        this.imageManager = new ImageManager( imageFunction, defaultImageLiteral );
       
        // Decorations
       
        final ListFactory<TextDecoration> decorationsListFactory = ListFactory.start();
       
        for( final TextDecorationDef ddef : this.definition.getDecorations() )
        {
            final FunctionResult text = initExpression
            (
                ddef.getText().content(),
                String.class,
                null,
                new Runnable()
                {
                    public void run()
                    {
                        broadcast( new DecorationEvent( MasterDetailsContentNodePart.this ) );
                    }
                }
            );

            final FunctionResult color = initExpression
            (
                ddef.getColor().content(),
                Color.class,
                null,
                new Runnable()
                {
                    public void run()
                    {
                        broadcast( new DecorationEvent( MasterDetailsContentNodePart.this ) );
                    }
                }
            );
           
            decorationsListFactory.add( new TextDecoration( text, color ) );
        }
       
        this.decorations = decorationsListFactory.result();
       
        // Sections and Child Nodes
       
        this.rawChildren = new ArrayList<Object>();
       
        final ListFactory<SectionPart> sectionsListFactory = ListFactory.start();
       
        for( FormComponentDef s : this.definition.getSections() )
        {
            final SectionDef sectionDefinition;
            final Map<String,String> sectionParams;
           
            if( s instanceof SectionDef )
            {
                sectionDefinition = (SectionDef) s;
                sectionParams = this.params;
            }
            else if( s instanceof SectionRef )
            {
                final SectionRef sectionReference = (SectionRef) s;
               
                sectionDefinition = sectionReference.getSection().target();
               
                if( sectionDefinition == null )
                {
                    final String msg = couldNotResolveSection.format( sectionReference.getSection().text() );
                    throw new RuntimeException( msg );
                }
               
                sectionParams = new HashMap<String,String>( this.params );
               
                for( ISapphireParam param : sectionReference.getParams() )
                {
                    final String paramName = param.getName().text();
                    final String paramValue = param.getValue().text();
                   
                    if( paramName != null && paramValue != null )
                    {
                        sectionParams.put( paramName, paramValue );
                    }
                }
            }
            else
            {
                throw new IllegalStateException();
            }
           
            final SectionPart section = new SectionPart();
           
            section.init( this, this.modelElement, sectionDefinition, sectionParams );
            section.initialize();
            section.attach( this.childPartListener );
           
            sectionsListFactory.add( section );
        }
       
        this.sections = sectionsListFactory.result();
       
        for( MasterDetailsContentNodeChildDef entry : this.definition.getChildNodes() )
        {
            final Map<String,String> params = new HashMap<String,String>( this.params );
           
            if( entry instanceof MasterDetailsContentNodeRef )
            {
                final MasterDetailsContentNodeRef inc = (MasterDetailsContentNodeRef) entry;
                entry = inc.resolve();
               
                if( entry == null )
                {
                    final String msg = couldNotResolveNode.format( inc.getPart() );
                    throw new RuntimeException( msg );
                }

                for( ISapphireParam param : inc.getParams() )
                {
                    final String paramName = param.getName().text();
                    final String paramValue = param.getValue().text();
                   
                    if( paramName != null && paramValue != null )
                    {
                        params.put( paramName, paramValue );
                    }
                }
            }

            if( entry instanceof MasterDetailsContentNodeDef )
            {
                final MasterDetailsContentNodeDef def = (MasterDetailsContentNodeDef) entry;
               
                final MasterDetailsContentNodePart node = new MasterDetailsContentNodePart();
                node.init( this, this.modelElement, def, params );
                node.initialize();
                node.attach( this.childPartListener );
               
                this.rawChildren.add( node );
            }
            else if( entry instanceof MasterDetailsContentNodeFactoryDef )
            {
                final NodeFactory factory = new NodeFactory( (MasterDetailsContentNodeFactoryDef) entry, params );
                this.rawChildren.add( factory );
            }
            else
            {
                throw new IllegalStateException();
            }
        }
       
        refreshNodes();
       
        attach
        (
            new Listener()
            {
                @Override
                public void handle( final Event event )
                {
                    if( event instanceof PartVisibilityEvent || event instanceof NodeListEvent )
View Full Code Here

                        return new FunctionResult( this, context )
                        {
                            @Override
                            protected void init()
                            {
                                final Listener listener = new FilteredListener<PartVisibilityEvent>()
                                {
                                    @Override
                                    protected void handleTypedEvent( final PartVisibilityEvent event )
                                    {
                                        refresh();
View Full Code Here

TOP

Related Classes of org.eclipse.sapphire.Listener

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.