Полужирный текст для управления вкладкой

Я исправил проблему с помощью этого простого кода. (Я поделился этим кодом для вас)

public class Information {
    private String name ;
    private String family ; 

    // constructor 
    // Getter & Setter 
    // override equal and hashCode

}

Это простая услуга. (Я смоделировал базу данных для этого класса)

@Stateless
public class InformationService {

    private static final List<Information> db = new ArrayList<>();

    @Inject
    @Push(channel = "infoChannel")
    PushContext push;

    @PostConstruct
    public void init() {
        Information userA = new Information("John", "Vankate");
        Information userB = new Information("Julius", "Sampao");
        db.add(userA);
        db.add(userB);
    }

    public void remove(Information info) {
        db.remove(info);
        push.send("deleteInfo");
    }

    public List<Information> findAll() {
        return db;
    }
}

и простые ресурсы JaxRs:

@Path("/info")
@RequestScoped
public class InformationResources {

    @EJB
    private InformationService informationService;


    @Path("/delete")
    @POST
    @Consumes("application/json")
    public String send(Information information) {
        informationService.remove(information);
        return "Receive : " + information;
    }
} 

Теперь запустите JSF:

@Named
@ViewScoped
public class InformationBean implements Serializable {

    private Information info ;
    private List<Information> informationList ;

    @EJB
    private InformationService informationService ;


    @PostConstruct
    public void init() {
        informationList = informationService.findAll();
        info = new Information() ;
    }

    public void deleteInformation() {
        informationService.remove(info);
    }

    public Information getInfo() {
        return info;
    }

    public void setInfo(Information info) {
        this.info = info;
    }

    public List<Information> getInformationList() {
        return informationList;
    }

    public void setInformationList(List<Information> informationList) {
        this.informationList = informationList;
    }
}

и xhtml:

<h:body>
    <p:dataTable value="#{informationBean.informationList}" var="info" id="infoTable">
        <p:column rowHeader="name">
            <h:outputText value="#{info.name}"/>
        </p:column>
        <p:column rowHeader="family">
            <h:outputText value="#{info.family}"/>
        </p:column>
        <p:column rowHeader="action">
            <h:form>
                <p:commandButton value="Delete" action="#{informationBean.deleteInformation}">
                    <f:setPropertyActionListener value="#{info}" target="#{informationBean.info}"/>
                </p:commandButton>
            </h:form>
        </p:column>
    </p:dataTable>
    <hr/>
    <f:websocket channel="infoChannel">
        <p:ajax event="deleteInfo" update="infoTable"/>
    </f:websocket>
</h:body>

Я уже думал, что PushContext должен быть реализован на бинах JSF. Теперь я понимаю, что можно реализовать это на уровне сервисной или бизнес-логики .
Теперь вы может удалить информацию из JaxR (Rest API) и удалить запись из p:dataTable без страницы обновления.
Примечание: в этом примере используется @ViewScoped

6
задан MattH 7 October 2008 в 21:41
поделиться

2 ответа

При установке Свойства шрифта на TabPage Вы устанавливаете стандартный шрифт для всех средств управления на той вкладке. Вы не устанавливаете его для заголовка, как бы то ни было.

Когда Вы выполняете следующий код:

tabControl.TabPages(index).Font = New Font(Me.Font, FontStyle.Bold)

Любые средства управления на той странице теперь будут полужирными по умолчанию, который не является (я принимаю), что Вы хотите.

Шрифтом заголовка (то есть, сама вкладка) управляет Свойство шрифта TabControl. Если необходимо было изменить код на:

tabControl.Font = New Font(Me.Font, FontStyle.Bold)

Вы будете видеть это в действии. Однако это изменяет шрифт для всех демонстрирующихся вкладок, который является также не, я принимаю, что Вы хотите.

Так, с помощью управления вкладкой WinForms по умолчанию Вы (я верю), ограниченный техникой в ссылке, которую Вы отправили. С другой стороны, можно начать смотреть на сторонние средства управления, такие как обсужденные в они вопросы на StackOverflow.

5
ответ дан 17 December 2019 в 00:16
поделиться

Простой способ дать различные маркировки средств управления вкладки в зависимости от значения поля состоит в том, чтобы изменить саму подпись:

Например:

Private Sub Form_Current()
    If IsNull(Me.Subform.Form.Field_Name) Then
        Me.Tab_Name.Caption = "Tab One"
    Else
        Me.Tab_Name.Caption = "Tab One +++"
    End If
End Sub
1
ответ дан 17 December 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: